// // MineViewController.swift // Twear // // Created by yangbin on 2021/12/18. // import UIKit import MBProgressHUD import Alamofire import HandyJSON class MineViewController: UIViewController { @IBOutlet weak var tableView: UITableView! @IBOutlet weak var avatarImageView: UIImageView! @IBOutlet weak var idLabel: UILabel! @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var medalNumLabel: UILabel! @IBOutlet weak var medalImageView1: UIImageView! @IBOutlet weak var medalImageView2: UIImageView! @IBOutlet weak var medalImageView3: UIImageView! @IBOutlet weak var medalImageView4: UIImageView! @IBOutlet weak var medalImageView5: UIImageView! @IBOutlet weak var locLabel1: UILabel! private let mineArray = ["健康报告", "我的数据", "个人资料", "隐私政策", "APP检查更新", "关于"] private let mineDic = ["健康报告": "health_report", "我的数据": "mine_data", "个人资料": "personal_info", "设置": "mine_setting", "APP检查更新": "app_update", "关于": "mine_about", "隐私政策": "privacy_policy"] private let user = UserInfo override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(false, animated: true) } override func viewDidLoad() { super.viewDidLoad() setupUI() } private func setupUI() { let leftButton = UIButton(frame: CGRect(x: 0, y: 0, width: 40, height: 28)) leftButton.setTitle(LocString("我的"), for: .normal) leftButton.titleLabel?.font = BoldFont(18) leftButton.setTitleColor(.black, for: .normal) navigationItem.leftBarButtonItem = UIBarButtonItem(customView: leftButton) tableView.bounces = false if let image = UIImage.getImageFromPath("avatar") { avatarImageView.image = image } else { avatarImageView.image = UIImage(named: user.gender == 1 ? "avatar_male" : "avatar_female") } if user.name == "" { nameLabel.text = "YTWatch"//"\(LocString("用户")):\(user.userId)" } else { nameLabel.text = user.name } idLabel.text = "id:\(user.userId)" locLabel1.text = LocString("我的勋章") var medalArray = ["单日10000步灰", "单日10000步灰", "单日10000步灰", "累计5万步灰", "累计10万步灰"] var medalNum: Int = 0 if let array = RealmTools.objectsWithPredicateAndSorted(object: MedalModel.self, predicate: NSPredicate(format: "date != nil"), sortedKey: "date") as? Array, array.count > 0 { medalNum = array.count for medal in array { medalArray.insert(medal.title, at: 0) } } medalNumLabel.text = LocString("共1") + "\(medalNum)" + LocString("枚1") medalImageView1.image = UIImage(named: medalArray[0]) medalImageView2.image = UIImage(named: medalArray[1]) medalImageView3.image = UIImage(named: medalArray[2]) medalImageView4.image = UIImage(named: medalArray[3]) medalImageView5.image = UIImage(named: medalArray[4]) } @IBAction func setUserInfo(_ sender: Any) { let vc = UIStoryboard.loadViewControllerIdentifier(storyboardName: "Mine", identifier: "UserInfoSettingVC") as! UserInfoSettingVC vc.modifyClosure = {[weak self] name, image in if image != nil { self?.avatarImageView.image = image } if name != "" { self?.nameLabel.text = name } } navigationController?.pushViewController(vc, animated: true) } @IBAction func gotoMedalVC(_ sender: Any) { let vc = UIStoryboard.loadViewControllerIdentifier(storyboardName: "Mine", identifier: "MedalViewController") as! MedalViewController navigationController?.pushViewController(vc, animated: true) } func checkAppVersion() { MBProgressHUD.showLoading(LocString("正在拼命加载..."), icon: "loading_icon") let infoDictionary : Dictionary = Bundle.main.infoDictionary! let curVersion = infoDictionary["CFBundleShortVersionString"] as? String let path = "https://itunes.apple.com/cn/lookup?id=1601611643"// var version: String = "" Alamofire.request(path, method: .post).response { (responseObj) in if responseObj.error == nil { let dic:Dictionary = try! JSONSerialization.jsonObject(with: responseObj.data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! Dictionary if dic["resultCount"] as! Int > 0{ let results:Array = dic["results"] as! Array if results.count > 0 { let resultsDic: Dictionary = results.first as! Dictionary version = resultsDic["version"] as! String // let size = resultsDic["fileSizeBytes"] as! Int let releaseNotes = resultsDic["releaseNotes"] as? String ?? " " let trackViewUrl = resultsDic["trackViewUrl"] as! String if curVersion!.checkVersion(version) { //发现新版本 MBProgressHUD.hide() let updateView = AppVersionView(version: version, detail: releaseNotes) updateView.clickClosure = { [weak self] in self?.gotoAppStore(trackViewUrl) } updateView.show() } else { MBProgressHUD.hide() MBProgressHUD.showh(LocString("当前已是最新版本")) } } } } } } func gotoAppStore(_ urlString: String) { let updateUrl: URL = URL(string: urlString)! if #available(iOS 10.0, *) { UIApplication.shared.open(updateUrl, options: [:], completionHandler: nil) } else { UIApplication.shared.openURL(updateUrl) } } deinit { print("deinit\(NSStringFromClass(type(of: self)))!!!!!!!") } } extension MineViewController: UITableViewDataSource, UITableViewDelegate { func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 50 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return mineArray.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "MineCell", for: indexPath) as! MineCell cell.label.text = LocString(mineArray[indexPath.row]) cell.setImageView.image = UIImage(named: mineDic[mineArray[indexPath.row]]!) if indexPath.row == mineArray.count-1 { cell.lineView.isHidden = true } return cell } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { switch mineArray[indexPath.row] { case "APP检查更新": checkAppVersion() case "个人资料": let vc = UIStoryboard.loadViewControllerIdentifier(storyboardName: "Mine", identifier: "UserInfoSettingVC") as! UserInfoSettingVC vc.modifyClosure = {[weak self] name, image in self?.avatarImageView.image = image self?.nameLabel.text = name } navigationController?.pushViewController(vc, animated: true) case "关于": let vc = UIStoryboard.loadViewControllerIdentifier(storyboardName: "Mine", identifier: "AboutAppVC") navigationController?.pushViewController(vc, animated: true) case "我的数据": let vc = UIStoryboard.loadViewControllerIdentifier(storyboardName: "Mine", identifier: "HealthDataVC") navigationController?.pushViewController(vc, animated: true) case "健康报告": let vc = UIStoryboard.loadViewControllerIdentifier(storyboardName: "Mine", identifier: "HealthReportVC") navigationController?.pushViewController(vc, animated: true) case "隐私政策": let vc = UIStoryboard.loadViewControllerIdentifier(storyboardName: "Mine", identifier: "PrivacyViewController") navigationController?.pushViewController(vc, animated: true) default: break } } }