KMUserInfoViewController.swift 74 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302
  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. }
  1069. }
  1070. }
  1071. buyNow1Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1072. guard let self = self else { return }
  1073. if KMMemberInfo.shared.userScenarioType == .dmg_type5 ||
  1074. KMMemberInfo.shared.userScenarioType == .dmg_type6 ||
  1075. KMMemberInfo.shared.userScenarioType == .dmg_type7 ||
  1076. KMMemberInfo.shared.userScenarioType == .dmg_type28 ||
  1077. KMMemberInfo.shared.userScenarioType == .dmg_type29 ||
  1078. KMMemberInfo.shared.userScenarioType == .dmg_type30 ||
  1079. KMMemberInfo.shared.userScenarioType == .dmg_type43 ||
  1080. KMMemberInfo.shared.userScenarioType == .dmg_type44 ||
  1081. KMMemberInfo.shared.userScenarioType == .dmg_type45 { // 买断
  1082. if mouseEntered {
  1083. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2Hover")
  1084. self.buyNow1Label.textColor = NSColor(hex: "4982E6")
  1085. } else {
  1086. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  1087. self.buyNow1Label.textColor = NSColor(hex: "0E1114")
  1088. }
  1089. } else if KMMemberInfo.shared.userScenarioType == .dmg_type8 ||
  1090. KMMemberInfo.shared.userScenarioType == .dmg_type9 ||
  1091. KMMemberInfo.shared.userScenarioType == .dmg_type10 ||
  1092. KMMemberInfo.shared.userScenarioType == .dmg_type12 ||
  1093. KMMemberInfo.shared.userScenarioType == .dmg_type13 ||
  1094. KMMemberInfo.shared.userScenarioType == .dmg_type14 ||
  1095. KMMemberInfo.shared.userScenarioType == .dmg_type15 ||
  1096. KMMemberInfo.shared.userScenarioType == .dmg_type16 ||
  1097. KMMemberInfo.shared.userScenarioType == .dmg_type17 ||
  1098. KMMemberInfo.shared.userScenarioType == .dmg_type20 ||
  1099. KMMemberInfo.shared.userScenarioType == .dmg_type21 ||
  1100. KMMemberInfo.shared.userScenarioType == .dmg_type23 ||
  1101. KMMemberInfo.shared.userScenarioType == .dmg_type24 ||
  1102. KMMemberInfo.shared.userScenarioType == .dmg_type25 ||
  1103. KMMemberInfo.shared.userScenarioType == .dmg_type26 ||
  1104. KMMemberInfo.shared.userScenarioType == .dmg_type27 ||
  1105. KMMemberInfo.shared.userScenarioType == .dmg_type31 ||
  1106. KMMemberInfo.shared.userScenarioType == .dmg_type32 ||
  1107. KMMemberInfo.shared.userScenarioType == .dmg_type35 ||
  1108. KMMemberInfo.shared.userScenarioType == .dmg_type36 ||
  1109. KMMemberInfo.shared.userScenarioType == .dmg_type38 ||
  1110. KMMemberInfo.shared.userScenarioType == .dmg_type39 ||
  1111. KMMemberInfo.shared.userScenarioType == .dmg_type40 ||
  1112. KMMemberInfo.shared.userScenarioType == .dmg_type41 ||
  1113. KMMemberInfo.shared.userScenarioType == .dmg_type42 ||
  1114. KMMemberInfo.shared.userScenarioType == .dmg_type46 ||
  1115. KMMemberInfo.shared.userScenarioType == .dmg_type47 { // 订阅
  1116. if mouseEntered {
  1117. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2Hover")
  1118. self.buyNow1Label.textColor = NSColor(hex: "4982E6")
  1119. } else {
  1120. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  1121. self.buyNow1Label.textColor = NSColor(hex: "0E1114")
  1122. }
  1123. } else {
  1124. if mouseEntered {
  1125. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  1126. } else {
  1127. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  1128. }
  1129. }
  1130. }
  1131. buyNow1Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1132. guard let self = self else { return }
  1133. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  1134. // 免费版,免费账号跳转购买比较表
  1135. self.viewModel.skipCompare(.lite_Base)
  1136. } else {
  1137. // 其它情况根据账号状态跳转不同比较表
  1138. NotificationCenter.default.post(name: NSNotification.Name("CloseMenuNotification"), object: nil)
  1139. KMMemberInfo.shared.productCompareShow()
  1140. }
  1141. }
  1142. buyNow2Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1143. guard let self = self else { return }
  1144. if mouseEntered {
  1145. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  1146. } else {
  1147. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  1148. }
  1149. }
  1150. buyNow2Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1151. guard let self = self else { return }
  1152. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  1153. self.viewModel.skipCompare(.trial)
  1154. } else if KMMemberInfo.shared.userScenarioType == .dmg_type4 ||
  1155. KMMemberInfo.shared.userScenarioType == .dmg_type19 ||
  1156. KMMemberInfo.shared.userScenarioType == .dmg_type34 {
  1157. self.viewModel.skipCompare(.trial)
  1158. }
  1159. }
  1160. accountCenterBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1161. guard let self = self else { return }
  1162. if mouseEntered {
  1163. self.accountCenterBox.fillColor = NSColor(named: "F5FAFF") ?? .white
  1164. self.accountLabel.textColor = NSColor(named: "3091FF")
  1165. self.accountImageView.image = NSImage(named: "AccountCenterImage_Hov")
  1166. } else {
  1167. self.accountCenterBox.fillColor = .clear
  1168. self.accountLabel.textColor = NSColor(named: "3091FF")
  1169. self.accountImageView.image = NSImage(named: "AccountCenterImage")
  1170. }
  1171. }
  1172. accountCenterBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1173. guard let self = self else { return }
  1174. self.viewModel.skipAccountCenter()
  1175. }
  1176. signOutBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1177. guard let self = self else { return }
  1178. if mouseEntered {
  1179. self.signOutLabel.textColor = NSColor(named: "3091FF")
  1180. self.signOutImageView.image = NSImage(named: "SignOutImage_Hov")
  1181. } else {
  1182. self.signOutLabel.textColor = NSColor(named: "3091FF")
  1183. self.signOutImageView.image = NSImage(named: "SignOutImage")
  1184. }
  1185. }
  1186. signOutBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1187. guard let self = self else { return }
  1188. self.viewModel.signOutAction()
  1189. }
  1190. closeAccountBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1191. guard let self = self else { return }
  1192. if mouseEntered {
  1193. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  1194. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage_hover")
  1195. } else {
  1196. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  1197. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage")
  1198. }
  1199. }
  1200. closeAccountBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1201. guard let self = self else { return }
  1202. self.viewModel.closeAccountAction()
  1203. }
  1204. //远程控制
  1205. if let userViewInfoContent = KMAdvertisementManager.manager.info.userViewInfoContent {
  1206. buyNow1BoxLeftConst.constant = 0
  1207. buyNow2Box.isHidden = false
  1208. if userViewInfoContent.content?.isEmpty == false {
  1209. buyNow2Box.isHidden = true
  1210. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  1211. }
  1212. }
  1213. }
  1214. }