Commit 6b12364b authored by Alex朱枝文's avatar Alex朱枝文

优化切换账号IM消息不更新的bug

parent 555ade9b
......@@ -29,17 +29,17 @@ public extension YHMessageListDelegate {
public class YHTUIMessageListManager: NSObject {
public static let shared = YHTUIMessageListManager()
private let dataProvider: TUIConversationListDataProvider = TUIConversationListDataProvider()
private var dataProvider: TUIConversationListDataProvider = TUIConversationListDataProvider()
private var messageList: [TUIConversationCellData] = []
public weak var delegate: YHMessageListDelegate?
private var unreadCount: UInt64 = 0
override private init() {
super.init()
setupDataProvider()
}
private func setupDataProvider() {
public func setupDataProvider() {
dataProvider = TUIConversationListDataProvider()
dataProvider.delegate = self
V2TIMManager.sharedInstance().addConversationListener(listener: self)
getTotalUnreadCount(unreadMessageCountEvent: { [weak self] count, msg in
......@@ -63,6 +63,11 @@ public class YHTUIMessageListManager: NSObject {
// MARK: - Public Methods
public func logoutIM() {
messageList.removeAll()
dataProvider.delegate = nil
}
/// 获取消息列表
public func getMessageList() -> [TUIConversationCellData] {
return messageList
......
......@@ -16,6 +16,8 @@ class YHTencentDeskManager: NSObject {
private lazy var viewModel: YHButlerServiceViewModel = YHButlerServiceViewModel()
private lazy var isOldUatAllowed = isUatAllowed()
private override init() {
super.init()
NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
......@@ -56,7 +58,9 @@ class YHTencentDeskManager: NSObject {
let userSig = self.viewModel.userSig ?? ""
let success: TSucc? = {
printLog("loginIM success")
_ = YHTUIMessageListManager.shared
// _ = YHTUIMessageListManager.shared
YHTUIMessageListManager.shared.setupDataProvider()
NotificationCenter.default.post(name: YhConstant.YhNotification.didTxIMLoginSuccessNotifiction, object: nil)
}
let failure: TFail? = { code, msg in
printLog("loginIM failure: code: \(code) msg: \(msg ?? "")")
......@@ -78,9 +82,10 @@ extension YHTencentDeskManager {
}
@objc private func didRevUatParam() {
guard isUatAllowed() else {
guard isOldUatAllowed != isUatAllowed(), isUatAllowed() else {
return
}
isOldUatAllowed = isUatAllowed()
loginSDK()
}
......@@ -94,7 +99,7 @@ extension YHTencentDeskManager {
@objc private func logoutSuccess() {
let success: TSucc? = {
printLog("logout success")
_ = YHTUIMessageListManager.shared
YHTUIMessageListManager.shared.logoutIM()
}
let failure: TFail? = { code, msg in
printLog("logout failure: code: \(code) msg: \(msg ?? "")")
......
......@@ -154,6 +154,7 @@ class YHMessageListVC: YHBaseViewController {
NotificationCenter.default.addObserver(self, selector: #selector(getUnreadMsgList), name: YhConstant.YhNotification.didRequestUnreadMsgListNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(checkNotificationPermisson), name: YhConstant.YhNotification.didReqeustNotifyPermissionNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(didRefreshYinHeManagerUnreadMsg), name: YhConstant.YhNotification.didQiYuUnReadMsgCountChangeNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(imLoginSuccess), name: YhConstant.YhNotification.didTxIMLoginSuccessNotifiction, object: nil)
}
private func setupMessageList() {
......@@ -183,6 +184,11 @@ class YHMessageListVC: YHBaseViewController {
NotificationCenter.default.removeObserver(self)
}
@objc func imLoginSuccess() {
printLog("IM登录成功,进行相应的 UI刷新操作")
messageListManager.refreshMessageList()
}
@objc func loginSuccess() {
printLog("登录成功,进行相应的 UI刷新操作")
getUnreadMsgList()
......@@ -190,6 +196,7 @@ class YHMessageListVC: YHBaseViewController {
@objc func logoutSuccess() {
getUnreadMsgList()
msgArr.removeAll(where: { $0.type == YHMessageType.txIM.rawValue })
}
@objc func didBackButtonClicked() {
......
......@@ -412,5 +412,7 @@ extension YhConstant {
// txIM未读消息数量变化
public static let didTxIMUnReadMsgCountChangeNotification = Notification.Name(rawValue: "com.yinhe.txIM.unReadMsgCountChange")
// txIM SDK登录成功
public static let didTxIMLoginSuccessNotifiction = Notification.Name(rawValue: "com.yinhe.txIM.login.success")
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment