Blame view

HDFwear/Setting/OtherSettingVC.swift 9.32 KB
f2cf74c7   yangbin   1.0.20(4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  //
  //  OtherSettingVC.swift
  //  Twear
  //
  //  Created by yangbin on 2021/12/22.
  //
  
  import UIKit
  import SnapKit
  import MBProgressHUD
  
  class OtherSettingVC: UIViewController {
  
      @IBOutlet weak var tableView: UITableView!
66c02729   daifengyi   feat:other settin...
15
  //    @IBOutlet weak var autoSwitch: UISwitch!
f2cf74c7   yangbin   1.0.20(4)
16
      
66c02729   daifengyi   feat:other settin...
17
18
19
  //    @IBOutlet weak var autoView: UIView!
  //    @IBOutlet weak var autoTitleLabel: UILabel!
  //    @IBOutlet weak var autoDetailLabel: UILabel!
f2cf74c7   yangbin   1.0.20(4)
20
21
22
23
24
25
26
      
      
      var unitSettingClosure: ((_ distanceUnit: DistanceUnit) -> ())?
      
      let settingDic: [String: [String]] = ["时间单位设置": ["24小时", "12小时"], "公英制单位设置": ["公制", "英制"], "温度单位": ["摄氏度(℃)", "华氏度(℉)"]]
      let settingArray: [String] = {
          switch CurDevice.platform {
f2cf74c7   yangbin   1.0.20(4)
27
28
29
30
31
32
33
34
35
36
37
38
          case ._828:
              return  ["时间单位设置", "公英制单位设置", "温度单位"]
          default:
              return ["时间单位设置", "公英制单位设置", "温度单位"]
          }
      }()
      
      var device = CurDevice
      
      override func viewDidLoad() {
          super.viewDidLoad()
          title = LocString("其他设置")
66c02729   daifengyi   feat:other settin...
39
  //        autoSwitch.isOn = UserInfo.autoMasure
f2cf74c7   yangbin   1.0.20(4)
40
41
42
          tableView.register(UINib.init(nibName: "SettingCell2", bundle: Bundle.main), forCellReuseIdentifier: "SettingCell2")
          tableView.tableFooterView = UIView(frame: CGRect.zero)
  
66c02729   daifengyi   feat:other settin...
43
44
  //        autoTitleLabel.text = LocString("整点自动测量")
  //        autoDetailLabel.text = LocString("开启此功能,手表每小时将自动测量健康数据")
f2cf74c7   yangbin   1.0.20(4)
45
46
47
          
          
          if device.name.contains("P8GT") || device.name.contains("S7 NO.1") {
66c02729   daifengyi   feat:other settin...
48
49
50
  //            autoTitleLabel.text = ""
  //            autoDetailLabel.text = ""
  //            autoView.isHidden = true
f2cf74c7   yangbin   1.0.20(4)
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
          }
      }
      @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 {
66c02729   daifengyi   feat:other settin...
81
          return 44
f2cf74c7   yangbin   1.0.20(4)
82
83
84
85
86
      }
  
      
      func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
          let view = UIView()
66c02729   daifengyi   feat:other settin...
87
          view.backgroundColor = UIColor.rgbColorFromHex(0xFAFAFA)
f2cf74c7   yangbin   1.0.20(4)
88
          let label = UILabel()
66c02729   daifengyi   feat:other settin...
89
90
          label.font = UIFont.systemFont(ofSize: 13, weight: .medium)
          label.textColor = UIColor.rgbColorFromHex(0x999999)
f2cf74c7   yangbin   1.0.20(4)
91
92
93
94
          label.text = LocString(settingArray[section])
          view.addSubview(label)
          label.snp.makeConstraints { make in
              make.left.equalToSuperview().offset(12)
66c02729   daifengyi   feat:other settin...
95
              make.top.equalToSuperview().offset(10)
f2cf74c7   yangbin   1.0.20(4)
96
97
98
99
100
101
102
103
104
          }
          return view
      }
      
      func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
          return 0.5
      }
      
      func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
66c02729   daifengyi   feat:other settin...
105
          return 55
f2cf74c7   yangbin   1.0.20(4)
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
      }
      
      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小时" {
66c02729   daifengyi   feat:other settin...
125
                  cell.setCorners(corners: [.topLeft, .topRight], radio: 10)
f2cf74c7   yangbin   1.0.20(4)
126
127
                  cell.selectImageView.image = UIImage(named: "setting_selected")
              } else if user.timeFormat == 1 && text == "12小时" {
66c02729   daifengyi   feat:other settin...
128
                  cell.setCorners(corners: [.bottomLeft, .bottomRight], radio: 10)
f2cf74c7   yangbin   1.0.20(4)
129
130
131
132
                  cell.selectImageView.image = UIImage(named: "setting_selected")
              }
          case "公英制单位设置":
              if text == "公制" {
66c02729   daifengyi   feat:other settin...
133
                  cell.setCorners(corners: [.topLeft, .topRight], radio: 10)
f2cf74c7   yangbin   1.0.20(4)
134
135
136
137
138
139
140
141
142
143
                  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 == "英制" {
66c02729   daifengyi   feat:other settin...
144
                  cell.setCorners(corners: [.bottomLeft, .bottomRight], radio: 10)
f2cf74c7   yangbin   1.0.20(4)
145
146
147
148
149
150
151
152
153
154
155
156
157
                  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 == "摄氏度(℃)" {
66c02729   daifengyi   feat:other settin...
158
                  cell.setCorners(corners: [.topLeft, .topRight], radio: 10)
f2cf74c7   yangbin   1.0.20(4)
159
160
                  cell.selectImageView.image = UIImage(named: "setting_selected")
              } else if user.temperatureUnit == 1 && text == "华氏度(℉)" {
66c02729   daifengyi   feat:other settin...
161
                  cell.setCorners(corners: [.bottomLeft, .bottomRight], radio: 10)
f2cf74c7   yangbin   1.0.20(4)
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
                  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小时":
6102d0b3   daifengyi   feat:time format
187
              BluetoothManager.shared.newSetTimeFormat(format: .hour_24) {[weak self] error in
f2cf74c7   yangbin   1.0.20(4)
188
189
190
191
192
193
                  if error == nil {
                      user.timeFormat = 0
                      self?.updateUI(indexPath, user: user)
                  }
              }
          case "12小时":
2b8a1881   daifengyi   fix:time format e...
194
              BluetoothManager.shared.newSetTimeFormat(format: .hour_12) {[weak self] error in
f2cf74c7   yangbin   1.0.20(4)
195
196
197
198
199
200
                  if error == nil {
                      user.timeFormat = 1
                      self?.updateUI(indexPath, user: user)
                  }
              }
          case "公制":
346a2a14   daifengyi   feat:replace setUnit
201
              BluetoothManager.shared.newSetDistanceUnit(unit: .meter) {[weak self] error in
f2cf74c7   yangbin   1.0.20(4)
202
203
204
205
206
207
208
                  if error == nil {
                      user.distanceUnit = 0
                      self?.updateUI(indexPath, user: user)
                      self?.unitSettingClosure?(.meter)
                  }
              }
          case "英制":
346a2a14   daifengyi   feat:replace setUnit
209
              BluetoothManager.shared.newSetDistanceUnit(unit: .foot) {[weak self] error in
f2cf74c7   yangbin   1.0.20(4)
210
211
212
213
214
215
216
                  if error == nil {
                      user.distanceUnit = 1
                      self?.updateUI(indexPath, user: user)
                      self?.unitSettingClosure?(.foot)
                  }
              }
          case "摄氏度(℃)":
346a2a14   daifengyi   feat:replace setUnit
217
              BluetoothManager.shared .newSetTemperatureUnit(unit: .celsius) {[weak self] error in
f2cf74c7   yangbin   1.0.20(4)
218
219
220
221
222
223
                  if error == nil {
                      user.temperatureUnit = 0
                      self?.updateUI(indexPath, user: user)
                  }
              }
          case "华氏度(℉)":
346a2a14   daifengyi   feat:replace setUnit
224
              BluetoothManager.shared .newSetTemperatureUnit(unit: .fahrenheit) {[weak self] error in
f2cf74c7   yangbin   1.0.20(4)
225
226
227
228
229
230
231
232
233
234
                  if error == nil {
                      user.temperatureUnit = 1
                      self?.updateUI(indexPath, user: user)
                  }
              }
          default:
              break
          }
      }
  }