// // HealthRemindVC.swift // Twear // // Created by yangbin on 2021/12/25. // import UIKit import MBProgressHUD import SwiftDate class HealthRemindVC: UIViewController { @IBOutlet weak var sedentaryIntervalLabel: UILabel! @IBOutlet weak var sedentaryStartLabel: UILabel! @IBOutlet weak var sedentaryEndLabel: UILabel! @IBOutlet weak var sedentarySwitch: UISwitch! @IBOutlet weak var drinkIntervalLabel: UILabel! @IBOutlet weak var drinkStartLabel: UILabel! @IBOutlet weak var drinkEndLabel: UILabel! @IBOutlet weak var drinkSwitch: UISwitch! let device = CurDevice lazy private var lastDrink: RemindModel = CurDevice.drink lazy private var lastSed: RemindModel = CurDevice.sedentary override func viewDidDisappear(_ animated: Bool) { super.viewDidDisappear(animated) MBProgressHUD.hide() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) // let navController = navigationController as? ZCNavigationController // navController?.enableScreenEdgePanGestureRecognizer(false) } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) let navController = navigationController as? ZCNavigationController navController?.enableScreenEdgePanGestureRecognizer(true) } override func navigationShouldPop() -> Bool { if lastSed.isEqual(device.sedentary) && lastDrink.isEqual(device.drink) { return true } else { self.showAlert(title: LocString("温馨提示"), message: LocString("您的设置尚未保存,是否退出")) { action in self.navigationController?.popViewController(animated: true) } return false } } override func viewDidLoad() { super.viewDidLoad() title = LocString("健康提醒") let saveButton = UIButton(frame: CGRect(x: 0, y: 0, width: 40, height: 28)) saveButton.setTitle(LocString("保存"), for: .normal) saveButton.titleLabel?.font = RegularFont(14) saveButton.setTitleColor(UIColor.rgbColorFromHex(0x00993E), for: .normal) saveButton.addTarget(self, action: #selector(save), for: .touchUpInside) navigationItem.rightBarButtonItem = UIBarButtonItem(customView: saveButton) sedentaryIntervalLabel.text = "\(device.sedentary.interval)\(LocString("分钟min"))" sedentaryStartLabel.text = device.sedentary.startDate.toString(.custom("HH:mm")) sedentaryEndLabel.text = device.sedentary.endDate.toString(.custom("HH:mm")) sedentarySwitch.isOn = device.sedentary.isOn drinkIntervalLabel.text = "\(device.drink.interval)\(LocString("分钟min"))" drinkStartLabel.text = device.drink.startDate.toString(.custom("HH:mm")) drinkEndLabel.text = device.drink.endDate.toString(.custom("HH:mm")) drinkSwitch.isOn = device.drink.isOn } @IBAction func valueChanged(_ sender: UISwitch) { if sender.tag == 0 { device.sedentary.isOn = sender.isOn } else { device.drink.isOn = sender.isOn } screenEdgePanEnable() } func screenEdgePanEnable() { let navController = navigationController as? ZCNavigationController if lastSed.isEqual(device.sedentary) && lastDrink.isEqual(device.drink) { navController?.enableScreenEdgePanGestureRecognizer(true) } else { navController?.enableScreenEdgePanGestureRecognizer(false) } } @IBAction func setRemindInterval(_ sender: UIButton) { let values: [Int] = [30, 45, 60, 90, 120] if sender.tag == 0 { let pickerView = ZCPickerView(title: LocString("间隔时间"), values: values) pickerView.selectedRow = values.firstIndex(of: device.sedentary.interval) ?? 1 pickerView.show() pickerView.clickClosure = {[weak self] value in self?.sedentaryIntervalLabel.text = "\(value)\(LocString("分钟min"))" self?.device.sedentary.interval = value self?.screenEdgePanEnable() } } else { let pickerView = ZCPickerView(title: LocString("间隔时间"), values: values) pickerView.selectedRow = values.firstIndex(of: device.drink.interval) ?? 1 pickerView.show() pickerView.clickClosure = {[weak self] value in self?.drinkIntervalLabel.text = "\(value)\(LocString("分钟min"))" self?.device.drink.interval = value self?.screenEdgePanEnable() } } } @IBAction func setStartTime(_ sender: UIButton) { if sender.tag == 0 { let values = (0..<24).map { (i) -> Int in return i } let pickerView = ZCPickerView(title: LocString("开始时间"), values: values, suffix: ":00") pickerView.selectedRow = values.firstIndex(of: device.sedentary.startDate.hour) ?? 9 pickerView.show() pickerView.clickClosure = {[weak self] value in let date = DateInRegion(year: 2000, month: 1, day: 1, hour: value, minute: 0).date self?.sedentaryStartLabel.text = date.toString(.custom("HH:mm")) self?.device.sedentary.startDate = date self?.screenEdgePanEnable() } } else { let pickerView = DatePickerView(title: LocString("开始时间")) pickerView.datePicker.date = device.drink.startDate pickerView.show() pickerView.clickClosure = {[weak self] date in self?.drinkStartLabel.text = date.toString(.custom("HH:mm")) self?.device.drink.startDate = date self?.screenEdgePanEnable() } } } @IBAction func setEndTime(_ sender: UIButton) { if sender.tag == 0 { let values = (0..<24).map { (i) -> Int in return i } let pickerView = ZCPickerView(title: LocString("结束时间"), values: values, suffix: ":00") pickerView.selectedRow = values.firstIndex(of: device.sedentary.endDate.hour) ?? 9 pickerView.show() pickerView.clickClosure = {[weak self] value in let date = DateInRegion(year: 2000, month: 1, day: 1, hour: value, minute: 0).date self?.sedentaryEndLabel.text = date.toString(.custom("HH:mm")) self?.device.sedentary.endDate = date self?.screenEdgePanEnable() } } else { let pickerView = DatePickerView(title: LocString("结束时间")) pickerView.datePicker.date = device.drink.endDate pickerView.show() pickerView.clickClosure = {[weak self] date in self?.drinkEndLabel.text = date.toString(.custom("HH:mm")) self?.device.drink.endDate = date self?.screenEdgePanEnable() } } } @objc private func save() { _ = MBProgressHUD.showMessage("") setSedentary() } private func setSedentary() { BluetoothManager.shared.setSedentaryRemind(device.sedentary) {[weak self] error in AdminHelper.shared.updateDevice((self?.device)!) self?.setDrinkWater() } } private func setDrinkWater() { BluetoothManager.shared.setDrinkWaterRemind(device.drink) {[weak self] error in AdminHelper.shared.updateDevice((self?.device)!) MBProgressHUD.hide() self?.navigationController?.popViewController(animated: true) } } deinit { print("deinit\(NSStringFromClass(type(of: self)))!!!!!!!") } }