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

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

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