|
|
|
//
|
|
|
|
// MineViewModel.swift
|
|
|
|
// FireBoltt
|
|
|
|
//
|
|
|
|
// Created by lemo. on 2020/3/7.
|
|
|
|
// Copyright © 2020 Sheldon. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
import UIKit
|
|
|
|
|
|
|
|
class MineViewModel: ViewModel {
|
|
|
|
|
|
|
|
var relay = BehaviorRelay(value: [SectionModel<String,TableViewCellModel>]())
|
|
|
|
|
|
|
|
let userIcon = BehaviorRelay<UIImage?>(value: R.image.user_Icon_header())
|
|
|
|
let userNickname = BehaviorRelay<String>(value: "")
|
|
|
|
|
|
|
|
override init() {
|
|
|
|
super.init()
|
|
|
|
loadUserData()
|
|
|
|
loadMeList()
|
|
|
|
monitor()
|
|
|
|
}
|
|
|
|
|
|
|
|
func loadUserData() {
|
|
|
|
guard let userInfo = UserDefaultsManagerFrieBoltt.getUserInfo() else { return }
|
|
|
|
if let avatarImg = userInfo.avatarImg {
|
|
|
|
userIcon.accept(avatarImg)
|
|
|
|
}
|
|
|
|
userNickname.accept(userInfo.nickname)
|
|
|
|
}
|
|
|
|
|
|
|
|
func loadMeList() {
|
|
|
|
// 我的列表
|
|
|
|
var meList: [[MineSetType]] = [[], [.about,.privacy,.service]]
|
|
|
|
// 功能适配
|
|
|
|
if let adapterInfo = UserDefaultsManagerFrieBoltt.getDeviceInfo()?.adapterInfo {
|
|
|
|
if adapterInfo.unitSet { meList[0].append(.unitSet) }
|
|
|
|
if adapterInfo.targetSet { meList[0].append(.targetSet) }
|
|
|
|
}
|
|
|
|
var tempRelay: [SectionModel<String,TableViewCellModel>] = []
|
|
|
|
for i in 0..<meList.count {
|
|
|
|
var items: [TableViewCellModel] = []
|
|
|
|
meList[i].enumerated().forEach { (index, type) in
|
|
|
|
let isHiddenBottomLine = (index + 1) == meList[i].count
|
|
|
|
var cellModel = TableViewCellModel(title: type.title, isSwitch: false, description: nil, isArrows: true, isOn: false, image: nil, isBottomLine: isHiddenBottomLine, righeImg: nil)
|
|
|
|
cellModel.mineSetType = type
|
|
|
|
items.append(cellModel)
|
|
|
|
}
|
|
|
|
if items.count > 0 {
|
|
|
|
tempRelay.append(SectionModel(model: "", items: items))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
relay.accept(tempRelay)
|
|
|
|
}
|
|
|
|
|
|
|
|
func monitor() {
|
|
|
|
// 用户信息更新
|
|
|
|
kNotificationCenter.rx.notification(Notification.Name(rawValue: UserInfoUpdateFireBoltt))
|
|
|
|
.subscribe(onNext: { [weak self] (notification) in
|
|
|
|
guard let `self` = self else { return }
|
|
|
|
self.loadUserData()
|
|
|
|
})
|
|
|
|
.disposed(by: rx.disposeBag)
|
|
|
|
// 设备适配更新
|
|
|
|
BluetoothService.shared.adapterInfoUpdate
|
|
|
|
.subscribe(onNext: { [weak self] (state) in
|
|
|
|
self?.loadMeList()
|
|
|
|
})
|
|
|
|
.disposed(by: rx.disposeBag)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
enum MineSetType: String {
|
|
|
|
case unitSet = "单位设置"
|
|
|
|
case targetSet = "目标设置"
|
|
|
|
case about = "关于"
|
|
|
|
case privacy = "隐私政策"
|
|
|
|
case service = "用户协议"
|
|
|
|
case disclaimerFB = "免责声明"
|
|
|
|
|
|
|
|
var title: String {
|
|
|
|
switch self {
|
|
|
|
case .unitSet: return MultiLanguageKey_FB.unitSetFB.localized
|
|
|
|
case .targetSet: return MultiLanguageKey_FB.targetSetFB.localized
|
|
|
|
case .about: return MultiLanguageKey_FB.aboutFB.localized
|
|
|
|
case .privacy: return MultiLanguageKey_FB.privacyFB.localized
|
|
|
|
case .service: return MultiLanguageKey_FB.serviceFB.localized
|
|
|
|
case .disclaimerFB: return MultiLanguageKey_FB.disclaimerFB.localized
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|