// // OtherSettingVC.swift // Twear // // Created by yangbin on 2021/12/22. // import UIKit import SnapKit import MBProgressHUD class OtherSettingVC: UIViewController { @IBOutlet weak var tableView: UITableView! // @IBOutlet weak var autoSwitch: UISwitch! // @IBOutlet weak var autoView: UIView! // @IBOutlet weak var autoTitleLabel: UILabel! // @IBOutlet weak var autoDetailLabel: UILabel! var unitSettingClosure: ((_ distanceUnit: DistanceUnit) -> ())? let settingDic: [String: [String]] = ["时间单位设置": ["24小时", "12小时"], "公英制单位设置": ["公制", "英制"], "温度单位": ["摄氏度(℃)", "华氏度(℉)"]] let settingArray: [String] = { switch CurDevice.platform { case ._828: return ["时间单位设置", "公英制单位设置", "温度单位"] default: return ["时间单位设置", "公英制单位设置", "温度单位"] } }() var device = CurDevice override func viewDidLoad() { super.viewDidLoad() title = LocString("其他设置") // autoSwitch.isOn = UserInfo.autoMasure tableView.register(UINib.init(nibName: "SettingCell2", bundle: Bundle.main), forCellReuseIdentifier: "SettingCell2") tableView.tableFooterView = UIView(frame: CGRect.zero) // autoTitleLabel.text = LocString("整点自动测量") // autoDetailLabel.text = LocString("开启此功能,手表每小时将自动测量健康数据") if device.name.contains("P8GT") || device.name.contains("S7 NO.1") { // autoTitleLabel.text = "" // autoDetailLabel.text = "" // autoView.isHidden = true } } @IBAction func syncTime(_ sender: Any) { let user = UserInfo MBProgressHUD.showh(LocString("正在同步中...")) BluetoothManager.shared.setTime(format: TimeFormat(rawValue: UInt8(user.timeFormat))!) { error in if error == nil { MBProgressHUD.showh(LocString("同步完成")) } else { MBProgressHUD.showh(LocString("同步失败")) } } } @IBAction func switchAutoMasure(_ sender: UISwitch) { let user = UserInfo user.autoMasure = sender.isOn BluetoothManager.shared.setAutoMeasure(user.autoMasure) { error in if error == nil { AdminHelper.shared.updateUser(user) } } } } extension OtherSettingVC: UITableViewDelegate, UITableViewDataSource { func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 44 } func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { let view = UIView() view.backgroundColor = UIColor.rgbColorFromHex(0xFAFAFA) let label = UILabel() label.font = UIFont.systemFont(ofSize: 13, weight: .medium) label.textColor = UIColor.rgbColorFromHex(0x999999) label.text = LocString(settingArray[section]) view.addSubview(label) label.snp.makeConstraints { make in make.left.equalToSuperview().offset(12) make.top.equalToSuperview().offset(10) } return view } func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { return 0.5 } func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 55 } func numberOfSections(in tableView: UITableView) -> Int { return settingArray.count } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return settingDic[settingArray[section]]!.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "SettingCell2", for: indexPath) as! SettingCell2 let text = settingDic[settingArray[indexPath.section]]![indexPath.row] cell.label.text = LocString(text) let user = UserInfo switch settingArray[indexPath.section] { case "时间单位设置": if user.timeFormat == 0 && text == "24小时" { cell.setCorners(corners: [.topLeft, .topRight], radio: 10) cell.selectImageView.image = UIImage(named: "setting_selected") } else if user.timeFormat == 1 && text == "12小时" { cell.setCorners(corners: [.bottomLeft, .bottomRight], radio: 10) cell.selectImageView.image = UIImage(named: "setting_selected") } case "公英制单位设置": if text == "公制" { cell.setCorners(corners: [.topLeft, .topRight], radio: 10) if user.distanceUnit == 0 { cell.selectImageView.image = UIImage(named: "setting_selected") } let str1 = LocString("公制") let str2 = LocString("(米/公里/千克)") let str = NSMutableAttributedString(string: "\(str1)\(str2)") str.addAttributes([.font: RegularFont(15)], range: NSMakeRange(0, str1.count)) str.addAttributes([.font: RegularFont(11)], range: NSMakeRange(str1.count, str2.count)) cell.label.attributedText = str } else if text == "英制" { cell.setCorners(corners: [.bottomLeft, .bottomRight], radio: 10) if user.distanceUnit == 1 { cell.selectImageView.image = UIImage(named: "setting_selected") } let str1 = LocString("英制") let str2 = LocString("(英寸/英里/英镑)") let str = NSMutableAttributedString(string: "\(str1)\(str2)") str.addAttributes([.font: RegularFont(15)], range: NSMakeRange(0, str1.count)) str.addAttributes([.font: RegularFont(11)], range: NSMakeRange(str1.count, str2.count)) cell.label.attributedText = str } case "温度单位": if user.temperatureUnit == 0 && text == "摄氏度(℃)" { cell.setCorners(corners: [.topLeft, .topRight], radio: 10) cell.selectImageView.image = UIImage(named: "setting_selected") } else if user.temperatureUnit == 1 && text == "华氏度(℉)" { cell.setCorners(corners: [.bottomLeft, .bottomRight], radio: 10) cell.selectImageView.image = UIImage(named: "setting_selected") } default: break } return cell } func updateUI(_ indexPath: IndexPath, user: UserInfoModel) { MBProgressHUD.hide() AdminHelper.shared.updateUser(user) let cell = tableView.cellForRow(at: indexPath) as! SettingCell2 let cell1 = tableView.cellForRow(at: IndexPath(row: 1-indexPath.row, section: indexPath.section)) as! SettingCell2 cell.selectImageView.image = UIImage(named: "setting_selected") cell1.selectImageView.image = UIImage(named: "setting_not_selected") } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let cell = tableView.cellForRow(at: indexPath) as! SettingCell2 cell.isSelected = false _ = MBProgressHUD.showMessage("") let user = UserInfo switch settingDic[settingArray[indexPath.section]]![indexPath.row] { case "24小时": BluetoothManager.shared.newSetTimeFormat(format: .hour_24) {[weak self] error in if error == nil { user.timeFormat = 0 self?.updateUI(indexPath, user: user) } } case "12小时": BluetoothManager.shared.newSetTimeFormat(format: .hour_12) {[weak self] error in if error == nil { user.timeFormat = 1 self?.updateUI(indexPath, user: user) } } case "公制": BluetoothManager.shared.setUnit(.meter, TemperatureUnit(rawValue: UInt8(user.temperatureUnit))!) {[weak self] error in if error == nil { user.distanceUnit = 0 self?.updateUI(indexPath, user: user) self?.unitSettingClosure?(.meter) } } case "英制": BluetoothManager.shared.setUnit(.foot, TemperatureUnit(rawValue: UInt8(user.temperatureUnit))!) {[weak self] error in if error == nil { user.distanceUnit = 1 self?.updateUI(indexPath, user: user) self?.unitSettingClosure?(.foot) } } case "摄氏度(℃)": BluetoothManager.shared.setUnit(DistanceUnit(rawValue: UInt8(user.distanceUnit))!, .celsius) {[weak self] error in if error == nil { user.temperatureUnit = 0 self?.updateUI(indexPath, user: user) } } case "华氏度(℉)": BluetoothManager.shared.setUnit(DistanceUnit(rawValue: UInt8(user.distanceUnit))!, .fahrenheit) {[weak self] error in if error == nil { user.temperatureUnit = 1 self?.updateUI(indexPath, user: user) } } default: break } } }