123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import Foundation
- import RxSwift
- import RxCocoa
- public protocol MessageViewModelDelegate: class {
- func didSelect(type: MessageType)
- }
- public class MessageViewModel {
-
- private var respository: MessageRepository
- private var disposeBag = DisposeBag()
-
- public weak var delegate: MessageViewModelDelegate?
-
- public var sysReadedTip = BehaviorRelay<Bool>(value: true)
- public var commentReadedTip = BehaviorRelay<Bool>(value: true)
- public var thumbupReadedTip = BehaviorRelay<Bool>(value: true)
-
- public var sysBtnTapped = PublishSubject<Void>()
- public var commentBtnTapped = PublishSubject<Void>()
- public var thumbupBtnTapped = PublishSubject<Void>()
-
- public init() {
- self.respository = MessageRepository()
-
- sysBtnTapped.asObservable().subscribe {[weak self] (_) in
- guard let `self` = self else { return }
- self.delegate?.didSelect(type: .system)
- }.disposed(by: disposeBag)
-
- commentBtnTapped.asObservable().subscribe {[weak self] (_) in
- guard let `self` = self else { return }
- self.delegate?.didSelect(type: .comment)
- }.disposed(by: disposeBag)
-
- thumbupBtnTapped.asObservable().subscribe {[weak self] (_) in
- guard let `self` = self else { return }
- self.delegate?.didSelect(type: .thumbup)
- }.disposed(by: disposeBag)
- }
-
- public func reload() {
- respository.load().asObservable().subscribe(onNext: {[unowned self] (items) in
- for item in items {
- switch item.msg_type {
- case .system:
- self.sysReadedTip.accept(item.msg_unread_num == 0)
- case .thumbup:
- self.thumbupReadedTip.accept(item.msg_unread_num == 0)
- case .comment:
- self.commentReadedTip.accept(item.msg_unread_num == 0)
- }
- }
- }).disposed(by: disposeBag)
- }
- }
|