You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

145 lines
5.1 KiB

//
// 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)
}
}