|
|
|
//
|
|
|
|
// TargetVC.swift
|
|
|
|
// FireBoltt
|
|
|
|
//
|
|
|
|
// Created by lemo. on 2019/7/30.
|
|
|
|
// Copyright © 2019 lemo. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
import UIKit
|
|
|
|
|
|
|
|
// MARK:- 复用
|
|
|
|
fileprivate enum Resuable {
|
|
|
|
static let tableViewCell = ReusableCell<CommonTableViewCell>(nibName: "CommonTableViewCell")
|
|
|
|
}
|
|
|
|
|
|
|
|
class TargetVC: TableViewController {
|
|
|
|
|
|
|
|
let rxDataSource = RxTableViewSectionedReloadDataSource
|
|
|
|
<SectionModel<String, TableViewCellModel>>(configureCell: {
|
|
|
|
(dataSource, tv, indexPath, element) in
|
|
|
|
let cell = tv.dequeue(Resuable.tableViewCell, for: indexPath)
|
|
|
|
cell.bindViewModel(model: element)
|
|
|
|
return cell
|
|
|
|
})
|
|
|
|
|
|
|
|
private var selectIndexPath: IndexPath = IndexPath(row: 0, section: 0)
|
|
|
|
|
|
|
|
lazy var pickerView: PickerView = {
|
|
|
|
let pickerView = PickerView()
|
|
|
|
pickerView.currenValues = { [weak self] (value) in
|
|
|
|
guard let `self` = self else { return }
|
|
|
|
guard var userInfo = UserDefaultsManagerFrieBoltt.getUserInfo() else { return }
|
|
|
|
// 睡眠目标
|
|
|
|
if self.selectIndexPath.section == 0 && self.selectIndexPath.row == 1 {
|
|
|
|
userInfo.sleepTarget = value
|
|
|
|
}else {
|
|
|
|
// 其他步数目标
|
|
|
|
var sportMode = 0
|
|
|
|
if self.selectIndexPath.section == 0 {
|
|
|
|
userInfo.stepTarget = value
|
|
|
|
sportMode = 0
|
|
|
|
}else {
|
|
|
|
switch self.selectIndexPath.row {
|
|
|
|
case 0:
|
|
|
|
userInfo.walkTarget = value
|
|
|
|
case 1:
|
|
|
|
userInfo.runTarget = value
|
|
|
|
case 2:
|
|
|
|
userInfo.cyclingTarget = value
|
|
|
|
case 3:
|
|
|
|
userInfo.climbTarget = value
|
|
|
|
default:
|
|
|
|
break
|
|
|
|
}
|
|
|
|
sportMode = self.selectIndexPath.row + 1
|
|
|
|
}
|
|
|
|
// 步数目标发送设置指令
|
|
|
|
if BluetoothFireBoltt.shareInstance()!.isConnected {
|
|
|
|
BluetoothService.shared.setSportTarget(step: value, sportMode: sportMode)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
guard let viewModel = self.viewModel as? TargetVM else { return }
|
|
|
|
// 刷新页面
|
|
|
|
UserDefaultsManagerFrieBoltt.saveUserInfo(userInfo: userInfo)
|
|
|
|
viewModel.loadFuncationList()
|
|
|
|
}
|
|
|
|
return pickerView
|
|
|
|
}()
|
|
|
|
|
|
|
|
override func viewDidLoad() {
|
|
|
|
super.viewDidLoad()
|
|
|
|
}
|
|
|
|
|
|
|
|
override func makeUI() {
|
|
|
|
super.makeUI()
|
|
|
|
// tableView
|
|
|
|
if #available(iOS 13.0, *) {
|
|
|
|
tableViewStyle = .insetGrouped
|
|
|
|
} else {
|
|
|
|
// Fallback on earlier versions
|
|
|
|
// tableViewStyle = .grouped
|
|
|
|
}
|
|
|
|
tableView.register(Resuable.tableViewCell)
|
|
|
|
tableView.rx.setDelegate(self).disposed(by: rx.disposeBag)
|
|
|
|
tableView.backgroundColor = kHexColor(0xFAFAFA)
|
|
|
|
tableView.snp.makeConstraints { (make) in
|
|
|
|
make.edges.equalToSuperview()
|
|
|
|
}
|
|
|
|
tableView.rx.itemSelected
|
|
|
|
.subscribe(onNext: { [weak self] indexPath in
|
|
|
|
guard let `self` = self else { return }
|
|
|
|
guard let userInfo = UserDefaultsManagerFrieBoltt.getUserInfo() else { return }
|
|
|
|
self.selectIndexPath = indexPath
|
|
|
|
var pickerType: PikcerType = indexPath.section == 0 && indexPath.row == 0 ? .step1 : .step
|
|
|
|
var pickerValue = 0
|
|
|
|
// 睡眠目标
|
|
|
|
if indexPath.section == 0 && indexPath.row == 1 {
|
|
|
|
pickerValue = userInfo.sleepTarget
|
|
|
|
pickerType = .duration
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
// 其他步数目标
|
|
|
|
if indexPath.section == 0
|
|
|
|
{
|
|
|
|
pickerValue = userInfo.stepTarget
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
switch indexPath.row
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
pickerValue = userInfo.walkTarget
|
|
|
|
case 1:
|
|
|
|
pickerValue = userInfo.runTarget
|
|
|
|
case 2:
|
|
|
|
pickerValue = userInfo.cyclingTarget
|
|
|
|
case 3:
|
|
|
|
pickerValue = userInfo.climbTarget
|
|
|
|
default:
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
self.pickerView.show(values: pickerValue, type: pickerType, view: self.view)
|
|
|
|
})
|
|
|
|
.disposed(by: rx.disposeBag)
|
|
|
|
}
|
|
|
|
|
|
|
|
override func bindViewModel() {
|
|
|
|
guard let viewModel = viewModel as? TargetVM else { return }
|
|
|
|
viewModel.relay.asObservable()
|
|
|
|
.bind(to: tableView.rx.items(dataSource: rxDataSource))
|
|
|
|
.disposed(by: rx.disposeBag)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
extension TargetVC: UITableViewDelegate {
|
|
|
|
|
|
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
|
|
tableView.deselectRow(at: indexPath, animated: true)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|