HealthRemindVC.swift 8.16 KB
//
//  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 user = UserInfo
//    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 = "\(user.sedentary.interval)\(LocString("分钟min"))"
        sedentaryStartLabel.text = user.sedentary.startDate.toString(.custom("HH:mm"))
        sedentaryEndLabel.text = user.sedentary.endDate.toString(.custom("HH:mm"))
        sedentarySwitch.isOn = user.sedentary.isOn
        drinkIntervalLabel.text = "\(user.drink.interval)\(LocString("分钟min"))"
        drinkStartLabel.text = user.drink.startDate.toString(.custom("HH:mm"))
        drinkEndLabel.text = user.drink.endDate.toString(.custom("HH:mm"))
        drinkSwitch.isOn = user.drink.isOn
    }
    
    @IBAction func valueChanged(_ sender: UISwitch) {
        if sender.tag == 0 {
            user.sedentary.isOn = sender.isOn
            setSedentary()
        } else {
            user.drink.isOn = sender.isOn
            setDrinkWater()
        }
//        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: user.sedentary.interval) ?? 1
            pickerView.show()
            pickerView.clickClosure = {[weak self] value in
                self?.sedentaryIntervalLabel.text = "\(value)\(LocString("分钟min"))"
                self?.user.sedentary.interval = value
//                self?.screenEdgePanEnable()
                self?.setSedentary()
            }
        } else {
            let pickerView = ZCPickerView(title: LocString("间隔时间"), values: values)
            pickerView.selectedRow = values.firstIndex(of: user.drink.interval) ?? 1
            pickerView.show()
            pickerView.clickClosure = {[weak self] value in
                self?.drinkIntervalLabel.text = "\(value)\(LocString("分钟min"))"
                self?.user.drink.interval = value
//                self?.screenEdgePanEnable()
                self?.setDrinkWater()
            }
        }
    }
    
    @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: user.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?.user.sedentary.startDate = date
//                self?.screenEdgePanEnable()
                self?.setSedentary()
            }
        } else {
            let pickerView = DatePickerView(title: LocString("开始时间"))
            pickerView.datePicker.date = user.drink.startDate
            pickerView.show()
            pickerView.clickClosure = {[weak self] date in
                self?.drinkStartLabel.text = date.toString(.custom("HH:mm"))
                self?.user.drink.startDate = date
//                self?.screenEdgePanEnable()
                self?.setDrinkWater()
            }
        }
    }
    
    @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: user.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?.user.sedentary.endDate = date
//                self?.screenEdgePanEnable()
                self?.setSedentary()
            }
        } else {
            let pickerView = DatePickerView(title: LocString("结束时间"))
            pickerView.datePicker.date = user.drink.endDate
            pickerView.show()
            pickerView.clickClosure = {[weak self] date in
                self?.drinkEndLabel.text = date.toString(.custom("HH:mm"))
                self?.user.drink.endDate = date
                self?.setDrinkWater()
//                self?.screenEdgePanEnable()
            }
        }
    }
    
    
//    @objc private func save() {
//        _ = MBProgressHUD.showMessage("")
//        setSedentary()
//    }
    
    private func setSedentary() {
        _ = MBProgressHUD.showMessage("")
        BluetoothManager.shared.setSedentaryRemind(user.sedentary) {[weak self] error in
            AdminHelper.shared.updateUser((self?.user)!)
//            self?.setDrinkWater()
            MBProgressHUD.hide()
        }
    }
    
    private func setDrinkWater() {
        _ = MBProgressHUD.showMessage("")
        BluetoothManager.shared.setDrinkWaterRemind(user.drink) {[weak self] error in
            AdminHelper.shared.updateUser((self?.user)!)
            MBProgressHUD.hide()
//            self?.navigationController?.popViewController(animated: true)
        }
    }

    deinit {
        print("deinit\(NSStringFromClass(type(of: self)))!!!!!!!")
    }

}