LNConfigManager.swift 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // LNConfigManager.swift
  3. // Lanu
  4. //
  5. // Created by OneeChan on 2025/12/25.
  6. //
  7. import Foundation
  8. class LNConfigManager {
  9. static let shared = LNConfigManager()
  10. private(set) var commonConfig = LNConfigResponse()
  11. var isBeanAvailable: Bool {
  12. guard let version = commonConfig.appReviewSpecialVersionConfig?.ios else { return false }
  13. if version.isEmpty { return true }
  14. guard let iVersion = Int(version) else { return false }
  15. if iVersion == 0 { return true }
  16. guard let curVersion = Int(curBuildVersion) else { return false }
  17. return curVersion < iVersion
  18. }
  19. private init() {
  20. LNEventDeliver.addObserver(self)
  21. }
  22. func reloadCommonConfig() {
  23. LNHttpManager.shared.getCommonConfig { [weak self] res, err in
  24. guard let self else { return }
  25. guard let res else { return }
  26. commonConfig = res
  27. }
  28. }
  29. func getCountryCodeList(queue: DispatchQueue = .main, handler: @escaping ([LNCountryCodeVO]?) -> Void) {
  30. LNHttpManager.shared.getCountryCodeList { res, err in
  31. queue.asyncIfNotGlobal {
  32. handler(res?.list)
  33. }
  34. if let err {
  35. showToast(err.errorDesc)
  36. }
  37. }
  38. }
  39. }
  40. extension LNConfigManager: LNAccountManagerNotify {
  41. func onUserLogin() {
  42. reloadCommonConfig()
  43. }
  44. }