From 79fe4a06f14f57c8c15af948b300f4ee6800dc47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Fri, 16 Aug 2024 11:10:49 +0800 Subject: [PATCH 01/13] single chat&function extension --- .../Service/Client/EaseChatUIKitClient.swift | 8 ++++- .../Controllers/MessageListController.swift | 7 ++--- .../Chat/ViewModel/MessageListViewModel.swift | 2 +- .../Chat/Views/MessageListView.swift | 4 +-- .../ConversationListController.swift | 2 +- .../ViewModel/ConversationViewModel.swift | 1 + .../UI/Core/UIKit/Commons/Contants.swift | 2 +- .../UIKit/Commons/EaseChatNavigationBar.swift | 30 +++++++++++++------ .../UI/Core/UIKit/Commons/ImageView.swift | 7 ++++- .../DialogContainerViewController.swift | 2 +- .../PresentationController.swift | 9 ++++-- .../DialogManager/PresentationEnums.swift | 3 +- 12 files changed, 53 insertions(+), 24 deletions(-) diff --git a/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift b/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift index dd0fb3e5..f90aa055 100644 --- a/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift +++ b/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift @@ -74,7 +74,13 @@ public let cache_update_notification = "EaseChatUIKitContextUpdateCache" EaseChatUIKitContext.shared?.currentUser = user EaseChatUIKitContext.shared?.chatCache?[user.id] = user EaseChatUIKitContext.shared?.userCache?[user.id] = user - self.userService = UserServiceImplement(userInfo: user, token: token, completion: completion) + if self.userService != nil { + self.userService?.login(userId: user.id, token: token, completion: { success, error in + completion(error) + }) + } else { + self.userService = UserServiceImplement(userInfo: user, token: token, completion: completion) + } } /// Logout user diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Controllers/MessageListController.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Controllers/MessageListController.swift index 0877926a..577bb92c 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Controllers/MessageListController.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Controllers/MessageListController.swift @@ -398,6 +398,7 @@ extension MessageListController: MessageListDriverEventsListener { self.messageContainer.editMode = !$0 self.navigation.editMode = !$0 } + UIViewController.currentController?.present(vc, animated: true) } @@ -499,7 +500,7 @@ extension MessageListController: MessageListDriverEventsListener { messageActions.removeAll { $0.tag == "OriginalText" } } } - if !Appearance.chat.enablePinMessage,self.chatType != .chat { + if !Appearance.chat.enablePinMessage { messageActions.removeAll { $0.tag == "Pin" } } if !Appearance.chat.contentStyle.contains(.withReply) { @@ -516,9 +517,7 @@ extension MessageListController: MessageListDriverEventsListener { messageActions.removeAll { $0.tag == "Recall" } } } - if self.chatType == .chat { - messageActions.removeAll { $0.tag == "Pin" } - } + return messageActions } diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/ViewModel/MessageListViewModel.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/ViewModel/MessageListViewModel.swift index 55fd9889..4281c6aa 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/ViewModel/MessageListViewModel.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/ViewModel/MessageListViewModel.swift @@ -300,7 +300,7 @@ import UIKit } @objc open func fetchPinnedMessages() { - if Appearance.chat.enablePinMessage,self.chatType != .chat { + if Appearance.chat.enablePinMessage { self.chatService?.pinnedMessages(conversationId: self.to, completion: { [weak self] messages,error in guard let `self` = self else { return } if error == nil { diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift index 566c447f..e463124b 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift @@ -337,9 +337,9 @@ import UIKit if firstResponder { if self.inputBar.keyboardHeight >= 216,self.messageList.frame.height >= oldFrame.height { if self.getLastVisibleCellCoordinate().maxY > self.inputBar.frame.height+self.inputBar.keyboardHeight { - self.messageList.frame = CGRect(x: 0, y: 0-self.inputBar.keyboardHeight, width: self.messageList.frame.width, height: self.messageList.frame.height) + self.messageList.frame = CGRect(x: 0, y: self.frame.minY-self.inputBar.keyboardHeight, width: self.messageList.frame.width, height: self.messageList.frame.height) } else { - self.messageList.frame = CGRect(x: 0, y: 0, width: self.messageList.frame.width, height: self.messageList.frame.height-self.inputBar.keyboardHeight) + self.messageList.frame = CGRect(x: 0, y: self.frame.minY, width: self.messageList.frame.width, height: self.messageList.frame.height-self.inputBar.keyboardHeight) } let lastIndexPath = IndexPath(row: self.messages.count - 1, section: 0) diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/Controllers/ConversationListController.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/Controllers/ConversationListController.swift index 962abb00..030c8e03 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/Controllers/ConversationListController.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/Controllers/ConversationListController.swift @@ -297,7 +297,7 @@ extension ConversationListController { } extension ConversationListController: ThemeSwitchProtocol { - public func switchTheme(style: ThemeStyle) { + open func switchTheme(style: ThemeStyle) { self.view.backgroundColor = style == .dark ? UIColor.theme.neutralColor1:UIColor.theme.neutralColor98 self.search.backgroundColor = style == .dark ? UIColor.theme.neutralColor2:UIColor.theme.neutralColor95 self.navigation.backgroundColor = style == .dark ? UIColor.theme.neutralColor1:UIColor.theme.neutralColor98 diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift index 5544252c..e2db0024 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift @@ -132,6 +132,7 @@ public let disturb_change = "EaseUIKit_do_not_disturb_changed" deinit { destroyed() } + } //MARK: - ConversationListActionEventsDelegate diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/Contants.swift b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/Contants.swift index 6ac038c0..9da264fb 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/Contants.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/Contants.swift @@ -20,7 +20,7 @@ public let edgeZero: UIEdgeInsets = .zero public let BottomBarHeight = UIApplication.shared.windows.first?.safeAreaInsets.bottom ?? 0 /// The height of the status bar. -public let StatusBarHeight :CGFloat = BottomBarHeight > 0 ? 43:20 +public let StatusBarHeight :CGFloat = UIApplication.shared.statusBarFrame.height /// The height of the navigation bar, which includes the status bar. public let NavigationHeight :CGFloat = StatusBarHeight + 44 diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/EaseChatNavigationBar.swift b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/EaseChatNavigationBar.swift index cfbf2c5a..63546e94 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/EaseChatNavigationBar.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/EaseChatNavigationBar.swift @@ -110,7 +110,7 @@ import UIKit } public private(set) lazy var titleLabel: UILabel = { - UILabel(frame: CGRect(x: self.avatar.frame.maxX+4, y: StatusBarHeight+2, width: ScreenWidth-self.avatar.frame.maxX*2-8*3, height: 22)).font(UIFont.theme.headlineSmall).textColor(UIColor.theme.neutralColor1).backgroundColor(.clear).tag(2) + UILabel(frame: CGRect(x: self.avatar.frame.maxX+4, y: (nearStatusBar ? StatusBarHeight:0)+2, width: ScreenWidth-self.avatar.frame.maxX*2-8*3, height: 22)).font(UIFont.theme.headlineSmall).textColor(UIColor.theme.neutralColor1).backgroundColor(.clear).tag(2) }() public private(set) lazy var detail: UILabel = { @@ -141,6 +141,10 @@ import UIKit public private(set) lazy var cancel: UIButton = { UIButton(type: .custom).frame(CGRect(x: ScreenWidth-58, y: self.frame.height-36, width: 50, height: 28)).backgroundColor(.clear).title("barrage_long_press_menu_cancel".chat.localize, .normal).font(UIFont.theme.labelMedium).textColor(UIColor.theme.primaryColor5, .normal).tag(4).addTargetFor(self, action: #selector(buttonAction(sender:)), for: .touchUpInside) }() + + private var originalRenderRightImage = false + + private var nearStatusBar = true internal override init(frame: CGRect) { super.init(frame: frame) @@ -154,9 +158,10 @@ import UIKit /// - avatarURL: Avatar url. /// - rightImages: Right buttons kind of `[UIImage]`. /// - hiddenAvatar: Whether hide avatar or not. - @objc required public convenience init(frame: CGRect = CGRect(x: 0, y: 0, width: ScreenWidth, height: NavigationHeight),showLeftItem: Bool, textAlignment: NSTextAlignment = .center, placeHolder: UIImage? = nil,avatarURL: String? = nil,rightImages: [UIImage] = [],hiddenAvatar: Bool = false) { + @objc required public convenience init(frame: CGRect = CGRect(x: 0, y: 0, width: ScreenWidth, height: NavigationHeight),showLeftItem: Bool, textAlignment: NSTextAlignment = .center, placeHolder: UIImage? = nil,avatarURL: String? = nil,rightImages: [UIImage] = [],hiddenAvatar: Bool = false,nearStatusBar: Bool = true) { self.init(frame: frame) self.showLeft = showLeftItem + self.nearStatusBar = nearStatusBar if showLeftItem { var width = CGFloat(self.rightImages.count*36) if self.avatar.frame.maxX+4 > width { @@ -167,7 +172,7 @@ import UIKit } else { self.addSubViews([self.leftItem,self.avatar,self.status,self.titleLabel,self.detail,self.rightItems,self.separateLine,self.cancel]) } - self.titleLabel.frame = CGRect(x: (hiddenAvatar ? self.leftItem.frame.maxX:self.avatar.frame.maxX)+8, y: StatusBarHeight+4, width: ScreenWidth - width*2 - 4, height: 22) + self.titleLabel.frame = CGRect(x: (hiddenAvatar ? self.leftItem.frame.maxX:self.avatar.frame.maxX)+8, y: (nearStatusBar ? StatusBarHeight:0)+4, width: ScreenWidth - width*2 - 4, height: 22) if textAlignment == .center { self.titleLabel.center = CGPoint(x: self.center.x, y: self.titleLabel.center.y) } @@ -180,7 +185,7 @@ import UIKit } self.bringSubviewToFront(self.avatar) self.bringSubviewToFront(self.status) - self.titleLabel.frame = CGRect(x: (hiddenAvatar ? self.leftItem.frame.maxX:self.avatar.frame.maxX)+8, y: StatusBarHeight+4, width: ScreenWidth - CGFloat(self.rightImages.count*36)*2, height: 22) + self.titleLabel.frame = CGRect(x: (hiddenAvatar ? self.leftItem.frame.maxX:self.avatar.frame.maxX)+8, y: (nearStatusBar ? StatusBarHeight:0), width: ScreenWidth - CGFloat(self.rightImages.count*36)*2, height: 22) if textAlignment == .center { self.titleLabel.center = CGPoint(x: self.center.x, y: self.titleLabel.center.y) } @@ -198,8 +203,9 @@ import UIKit self.addGesture() self.cancel.isHidden = true self.leftItem.center = CGPoint(x: self.leftItem.center.x, y: self.leftItem.center.y-2) + self.avatar.frame = CGRect(x: self.showLeft ? self.leftItem.frame.maxX:CGFloat(10), y: self.frame.height-38, width: 32, height: 32) self.updateRightItems(images: rightImages) - self.titleLabel.frame = CGRect(x: (hiddenAvatar ? self.leftItem.frame.maxX:self.avatar.frame.maxX)+8, y: StatusBarHeight+4, width: ScreenWidth - self.rightItems.frame.width - 8 - ((hiddenAvatar ? self.leftItem.frame.maxX:self.avatar.frame.maxX)+8), height: 22) + self.titleLabel.frame = CGRect(x: (hiddenAvatar ? self.leftItem.frame.maxX:self.avatar.frame.maxX)+8, y: (nearStatusBar ? StatusBarHeight:0)+4, width: ScreenWidth - self.rightItems.frame.width - 8 - ((hiddenAvatar ? self.leftItem.frame.maxX:self.avatar.frame.maxX)+8), height: 22) self.detail.frame = CGRect(x: self.titleLabel.frame.minX, y: self.titleLabel.frame.maxY, width: self.titleLabel.frame.width, height: 14) self.status.isHidden = Appearance.hiddenPresence Theme.registerSwitchThemeViews(view: self) @@ -269,27 +275,33 @@ import UIKit } } - @objc public func updateRightItems(images: [UIImage]) { + @objc public func updateRightItems(images: [UIImage],original: Bool = false) { + self.originalRenderRightImage = original self.rightImages.removeAll() if images.count > 3 { self.rightImages = Array(images.prefix(3)) } else { self.rightImages.append(contentsOf: images) } - self.rightItems.frame = CGRect(x: ScreenWidth-CGFloat(images.count*36)-8, y: StatusBarHeight+8, width: CGFloat(images.count*36), height: 36) + self.rightItems.frame = CGRect(x: ScreenWidth-CGFloat(images.count*36)-8, y: (nearStatusBar ? StatusBarHeight:0)+8, width: CGFloat(images.count*36), height: 36) self.rightItems.reloadData() } + } extension EaseChatNavigationBar: UICollectionViewDataSource,UICollectionViewDelegate { - + public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { self.rightImages.count } public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "EaseChatNavigationBarRightCell", for: indexPath) as? EaseChatNavigationBarRightCell - cell?.imageView.image = self.rightImages[safe: indexPath.row]?.withTintColor(Theme.style == .dark ? UIColor.theme.neutralColor98:UIColor.theme.neutralColor3) + if self.originalRenderRightImage { + cell?.imageView.image = self.rightImages[safe: indexPath.row]?.withRenderingMode(.alwaysOriginal) + } else { + cell?.imageView.image = self.rightImages[safe: indexPath.row]?.withTintColor(Theme.style == .dark ? UIColor.theme.neutralColor98:UIColor.theme.neutralColor3) + } return cell ?? UICollectionViewCell() } diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/ImageView.swift b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/ImageView.swift index b5afbfde..19d9eeb0 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/ImageView.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/Commons/ImageView.swift @@ -27,7 +27,12 @@ import Combine /// - placeHolder: An optional placeholder image to display while the image is being loaded. @MainActor public func image(with url: String,placeHolder: UIImage?) { self.image = placeHolder - var urlString = url.lowercased() + var urlString = "" + if url.hasSuffix(".png") || url.hasSuffix(".jpg") || url.hasSuffix(".jpeg") { + urlString = url + } else { + urlString = url.lowercased() + } if !url.hasPrefix("http://"), !url.hasPrefix("https://") { urlString = "https://" + url } else { diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/DialogContainerViewController.swift b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/DialogContainerViewController.swift index efa4416e..a96918bb 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/DialogContainerViewController.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/DialogContainerViewController.swift @@ -16,7 +16,7 @@ import UIKit public var presentedViewComponent: PresentedViewComponent? = PresentedViewComponent(contentSize: Appearance.pageContainerConstraintsSize,destination: .bottomBaseline,canTapBGDismiss: true) - var customView: UIView? + public var customView: UIView? override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PresentationController.swift b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PresentationController.swift index b7fa53ae..cda91041 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PresentationController.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PresentationController.swift @@ -28,10 +28,10 @@ public final class PresentationController: UIPresentationController { backgroundView.backgroundColor = UIColor.theme.barrageLightColor2 backgroundView.alpha = 0.0 backgroundView.isUserInteractionEnabled = true -// if component.canTapBGDismiss { + if component.canTapBGDismiss { let tapGesture = UITapGestureRecognizer(target: self, action: #selector(backgroundViewDidTapped)) backgroundView.addGestureRecognizer(tapGesture) -// } + } return backgroundView }() @@ -259,11 +259,16 @@ extension PresentationController { let inputViewBottom = inputViewFrame.maxY + component.keyboardPadding let offset = inputViewBottom - keyboardTop newFrame.origin.y -= offset + case .noTreatment: + break } return newFrame } private func handleKeyboardAdjustAnimation() { + if self.component.keyboardTranslationType == .noTreatment { + return + } guard let keyboardFrame = keyboardFrame, let keyboardAnimationDuration = keyboardAnimationDuration else { return } if let textInputView = textInputView { diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PresentationEnums.swift b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PresentationEnums.swift index 94caebe9..877532fa 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PresentationEnums.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PresentationEnums.swift @@ -166,7 +166,8 @@ public enum AnimationOptions { /// /// - unabgeschirmt: discover PresentedView,compress: keyboard nearly present view /// - compressInputView: Nearly system keyboard -public enum KeyboardTranslationType { +public enum KeyboardTranslationType:Equatable { case unabgeschirmt(compress: Bool) case compressInputView + case noTreatment } From 57ff4fb06a3da9fa6a21398a775bfa8f16f26cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Fri, 16 Aug 2024 12:30:11 +0800 Subject: [PATCH 02/13] some change --- Documentation/chatfeature_message.md | 170 ++++++++++++++++++ EaseChatUIKit.podspec | 2 +- README.md | 16 +- .../Service/Client/EaseChatUIKitClient.swift | 2 +- .../UI/Core/Foundation/ConsoleLog.swift | 2 +- chat-uikit.podspec | 44 ----- 6 files changed, 187 insertions(+), 49 deletions(-) create mode 100644 Documentation/chatfeature_message.md delete mode 100644 chat-uikit.podspec diff --git a/Documentation/chatfeature_message.md b/Documentation/chatfeature_message.md new file mode 100644 index 00000000..f856a7ac --- /dev/null +++ b/Documentation/chatfeature_message.md @@ -0,0 +1,170 @@ +# 消息特性 + + + +本文介绍消息相关特性,包括消息复制、删除、撤回、编辑、引用、翻译、表情回复、话题和转发。 + +对于消息引用、翻译、话题和消息转发,你可以决定是否开启或关闭该特性。 + +消息 cell 包含如下显示模块: + +- 消息引用 +- 用户头像 +- 用户昵称 +- 消息时间 +- 消息话题 +- 表情回复 + +若不显示某个模块,可将其隐藏,示例代码如下: + +```swift +// 消息 cell 包含的显示模块 + @objc public enum MessageContentDisplayStyle: UInt { + case withReply = 1 + case withAvatar = 2 + case withNickName = 4 + case withDateAndTime = 8 + case withMessageThread = 16 + case withMessageReaction = 32 +} +// 若不显示,可将其隐藏。 +Appearance.chat.contentStyle: [MessageContentDisplayStyle] = [.withReply,.withAvatar,.withNickName,.withDateAndTime,.withMessageThread,.withMessageReaction] + + if hiddenTopic { + Appearance.chat.contentStyle.removeAll { $0 == .withMessageThread } + } + if hiddenReaction { + Appearance.chat.contentStyle.removeAll { $0 == .withMessageReaction } + } +``` + +## 消息复制 + +消息复制是指用户可以将一条消息复制到剪贴板。消息复制可以帮助用户将消息保存到其他地方,或将其粘贴到其他应用程序中。 + +![img](./IndicatorImages/Appearance_chat_messageLongPressedActions.png) + +## 消息删除 + +消息删除是指用户可以删除一条消息。消息删除可以帮助用户删除错误发送的消息,或删除不想保留的消息。 + +![img](./IndicatorImages/Appearance_chat_messageLongPressedActions.png) + +## 消息撤回 + +消息撤回是指用户可以撤回一条已发送的消息。消息撤回可以帮助用户撤回错误发送的消息,或撤回不想让其他用户看到的消息。 + +![img](./IndicatorImages/Appearance_chat_messageLongPressedActions.png) + +## 消息编辑 + +消息编辑是指用户可以编辑一条已发送的消息。消息编辑可以帮助用户纠正错误,或添加新信息。 + +![img](./IndicatorImages/Appearance_chat_messageLongPressedActions.png) + +## 消息引用 + +消息引用是指用户可以引用一条已发送的消息。消息引用可以帮助用户回复特定的消息,或强调特定的信息。 + +![img](./IndicatorImages/Appearance_chat_messageLongPressedActions.png) + +消息引用特性默认开启,若不需要可将其隐藏,示例代码如下: + +```Swift +Appearance.chat.contentStyle: [MessageContentDisplayStyle] = [.withReply,.withAvatar,.withNickName,.withDateAndTime,.withMessageThread,.withMessageReaction] + + if hiddenTopic { + Appearance.chat.contentStyle.removeAll { $0 == .withReply } + } +``` + +## 消息翻译 + +消息翻译是指用户可以将一条消息翻译成其他语言。消息翻译可以帮助使用不同语言的用户进行沟通。 + +目前,单群聊 UIKit 支持翻译文本消息。消息翻译的 UI 和逻辑部分在 `Appearance.swift` 中。 + +![img](./IndicatorImages/Appearance_chat_messageLongPressedActions.png) + +### 如何使用 + +使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已申请试用该功能。 + +1. 开启消息翻译特性。 + +消息翻译特性在 `Appearance.swift` 中默认关闭,即 `Appearance.chat.enableTranslation` 的默认值为 `false`。要开启该特性,需将该参数设置为 `true`。 + +2. 设置翻译的目标语言。 + +单群聊 UiKit 的 `Appearance.swift` 中提供了 `Appearance.chat.targetLanguage` 设置目标翻译语言。 + +如果未设置翻译的目标语言,则默认使用中文。 + +更多翻译目标语言,请参考 [翻译语言支持](https://learn.microsoft.com/zh-cn/azure/ai-services/translator/language-support)。 + +示例代码如下: + +```Swift + + Appearance.chat.enableTranslation = true + + Appearance.chat.targetLanguage = .English + +``` + +## 表情回复 + +表情回复(即 Reaction)指用户可以使用表情符号回复消息。表情回复可以帮助用户表达情绪、态度、进行调查或投票。在单群聊 UIKit 中,用户可以长按单条消息触发消息拓展功能菜单,选择表情回复。 + +目前,单群聊 UIKit 支持 Reaction,可在 `Appearance.swift` 中开启或关闭。 + +![img](./IndicatorImages/Appearance_chat_messageLongPressedActions.png) + +### 如何使用 + +使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 + +消息表情回复特性在 `Appearance.swift` 中默认关闭,即 `Appearance.chat.contentStyle` 数组中默认不包含 `.withMessageReaction`。 + +要开启该特性,需在该数组中添加 `.withMessageReaction`。**注意不要重复添加**。 + +示例代码如下: + +```swift +Appearance.chat.contentStyle.append(.withMessageReaction) + +``` + +## 消息话题 + +消息话题(即 `Thread`)指用户可以在群组聊天中根据一条消息创建话题进行深入探讨,讨论和追踪特定项目任务,而不影响其他聊天内容。 + +单群聊 UIKit 中实现了 Thread,可在 `Appearance.swift` 中开启或关闭。 + +![img](./IndicatorImages/Appearance_chat_messageLongPressedActions.png) + +### 如何使用 + +使用该特性前,请确保在[环信即时通信控制台](https://console.easemob.com/user/login)上已开通该功能。 + +Thread 特性在 `Appearance.swift` 中默认关闭,即` Appearance.chat.contentStyle` 数组中默认不包含 `.withMessageThread`。 + +要开启该特性,需在该数组中添加 `.withMessageThread`。**注意不要重复添加**。 + +```swift +Appearance.chat.contentStyle.append(.withMessageThread) + +``` + +## 消息合并转发 + +消息转发指用户可以将消息转发给其他用户。你可以转发单条消息,也可以选择多条消息进行合并转发。 + +消息转发 UI 和逻辑部分结构如下: + +- `MessageMultiSelectedBottomBar.swift`:底部菜单 View。 +- `MessageListController.swift`:处理 UI 布局变更以及转发和删除的逻辑。 +- `MessageListController.swift`:消息选择帮助类用于记录选中的消息信息并提供获取方法。 + +![img](./IndicatorImages/Appearance_chat_messageLongPressedActions.png) + diff --git a/EaseChatUIKit.podspec b/EaseChatUIKit.podspec index b647aeab..060ff526 100644 --- a/EaseChatUIKit.podspec +++ b/EaseChatUIKit.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'EaseChatUIKit' - s.version = '4.7.0' + s.version = '4.8.0' s.summary = 'A easy for use ChatUIKit.' # This description is used to generate tags and improve search results. diff --git a/README.md b/README.md index c01f28ff..470cdb72 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,8 @@ - [开发环境](#开发环境) - [安装](#安装) - [结构](#结构) +- [运行示例项目](#运行示例项目) - [快速开始](#快速开始) -- [注意事项](#注意事项) - [进阶用法](#进阶用法) - [自定义](#自定义) - [主题](#主题) @@ -107,6 +107,16 @@ Classes ├─ Theme // 主题相关组件,包括颜色、字体、换肤协议及其组件。 └─ Extension // 一些方便的系统类扩展。 ``` +# 运行示例项目 + +- [注册环信AppKey](https://docs-im-beta.easemob.com/product/enable_and_configure_IM.html#%E8%8E%B7%E5%8F%96%E7%8E%AF%E4%BF%A1%E5%8D%B3%E6%97%B6%E9%80%9A%E8%AE%AF-im-%E7%9A%84%E4%BF%A1%E6%81%AF) +- 在Appdelegate.swift 中找到 +```Swift +let option = ChatOptions(appkey: <#环信AppKey#>) +``` +将注册的AppKey填入其中。 +- 如果想要自定义的头像昵称显示信息,在LoginViewController.swift中找到loginAction方法后填入您要显示的当前用户id对应的昵称头像`profile.nickname` `profile.avatarURL`信息即可,然后运行项目即可,出现登录界面后需要您去创建用户以及获取用户token // 。 [使用控制台生成的临时Token登录](https://docs-im-beta.easemob.com/product/enable_and_configure_IM.html#%E5%88%9B%E5%BB%BA-im-%E7%94%A8%E6%88%B7) + # 快速开始 @@ -384,6 +394,8 @@ EaseChatUIKitClient.shared.unregisterUserStateListener(self) # 自定义 +详细的自定义请参见wiki. + ## 1.修改可配置项 下面示例展示如何更改消息内容显示 @@ -391,7 +403,7 @@ EaseChatUIKitClient.shared.unregisterUserStateListener(self) ```Swift // 可以通过增减显示内容数组中的项,改变消息样式某一部分的显示隐藏。 Appearance.chat.contentStyle = [.withReply,.withAvatar,.withNickName,.withDateAndTime] - // 创建ChatroomView,传入布局参数、底部工具栏扩展按钮模型协议数组等参数。 + let vc = ComponentsRegister.shared.MessageViewController.init(conversationId: <#在Console中创建用户的id#>, chatType: .chat) vc.modalPresentationStyle = .fullScreen ControllerStack.toDestination(vc: vc) diff --git a/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift b/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift index f90aa055..04d959fc 100644 --- a/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift +++ b/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift @@ -58,7 +58,7 @@ public let cache_update_notification = "EaseChatUIKitContextUpdateCache" if let key = appKey { return ChatClient.shared().initializeSDK(with: ChatOptions(appkey: key)) } - return ChatError(description: "App key can't nil", code: .invalidAppkey) + return ChatError(description: "App key can't be nil", code: .invalidAppkey) } } diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/Foundation/ConsoleLog.swift b/Sources/EaseChatUIKit/Classes/UI/Core/Foundation/ConsoleLog.swift index 636f4fed..fdd7ade5 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/Foundation/ConsoleLog.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/Foundation/ConsoleLog.swift @@ -57,7 +57,7 @@ private func consoleLog ( final class Log { static let logFileURL: URL = { let documentsDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! - return documentsDirectoryURL.appendingPathComponent("EaseChatUIKit.log") + return documentsDirectoryURL.appendingPathComponent("EaseChatUIKit\(EaseChatUIKit_VERSION).log") }() static func saveLog(_ message: String, file: StaticString = #file, function: StaticString = #function, line: UInt = #line) { diff --git a/chat-uikit.podspec b/chat-uikit.podspec deleted file mode 100644 index d82fc98e..00000000 --- a/chat-uikit.podspec +++ /dev/null @@ -1,44 +0,0 @@ -Pod::Spec.new do |s| -s.name = 'chat-uikit' -s.version = '1.3.0' -s.summary = 'agora im UIKit' -s.homepage = 'https://github.com/AgoraIO-Usecase/AgoraChat-UIKit-ios' -s.description = <<-DESC -chat-uikit new version -DESC -s.license = { :type => 'MIT', :file => 'LICENSE' } -s.author = { 'agora' => 'dev@agora.com' } -s.source = { :git => 'https://github.com/AgoraIO-Usecase/AgoraChat-UIKit-ios.git', :tag => s.version.to_s} -s.ios.deployment_target = '13.0' - -s.xcconfig = {'ENABLE_BITCODE' => 'NO'} -s.resources = ['Sources/EaseChatUIKit/Classes/UI/**/*.bundle','Sources/EaseChatUIKit/Classes/UI/**/*.xcprivacy'] -s.dependency 'HyphenateChat','>= 4.6.0' -s.static_framework = true - -s.swift_version = '5.0' -s.prefix_header_contents = ' -# if __has_include () -#import -# else -#import "EaseChatUIKit-Bridge.h" -# endif -' -s.public_header_files = 'Sources/EaseChatUIKit/Classes/UI/Foundation/EaseChatUIKit-Bridge.h' - -s.preserve_paths = ['Sources/EaseChatUIKit/Classes/UI/Core/Foundation/third-party/**/*.a','Sources/EaseChatUIKit/Classes/UI/Core/Foundation/third-party/vo-amrwbenc/lib/*.a'] - - -s.vendored_libraries = ['Sources/EaseChatUIKit/Classes/UI/Core/Foundation/third-party/**/*.a','Sources/EaseChatUIKit/Classes/UI/Core/Foundation/third-party/vo-amrwbenc/lib/*.a'] - -s.xcconfig = { 'LIBRARY_SEARCH_PATHS' => '$(PODS_ROOT)/Sources/EaseChatUIKit/Classes/UI/Core/Foundation/third-party/**/*' } # - - -s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64', -'VALID_ARCHS' => 'arm64 armv7 x86_64' -} -s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - -s.frameworks = 'UIKit', 'Foundation', 'Combine', 'AudioToolbox', 'AVFoundation','AVFAudio','Photos' - -end From 5df5961d8c8929aa734d25a95cae8f23e9e7e404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Fri, 16 Aug 2024 18:34:57 +0800 Subject: [PATCH 03/13] update --- .../Classes/UI/Components/Chat/Views/MessageListView.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift index e463124b..566c447f 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift @@ -337,9 +337,9 @@ import UIKit if firstResponder { if self.inputBar.keyboardHeight >= 216,self.messageList.frame.height >= oldFrame.height { if self.getLastVisibleCellCoordinate().maxY > self.inputBar.frame.height+self.inputBar.keyboardHeight { - self.messageList.frame = CGRect(x: 0, y: self.frame.minY-self.inputBar.keyboardHeight, width: self.messageList.frame.width, height: self.messageList.frame.height) + self.messageList.frame = CGRect(x: 0, y: 0-self.inputBar.keyboardHeight, width: self.messageList.frame.width, height: self.messageList.frame.height) } else { - self.messageList.frame = CGRect(x: 0, y: self.frame.minY, width: self.messageList.frame.width, height: self.messageList.frame.height-self.inputBar.keyboardHeight) + self.messageList.frame = CGRect(x: 0, y: 0, width: self.messageList.frame.width, height: self.messageList.frame.height-self.inputBar.keyboardHeight) } let lastIndexPath = IndexPath(row: self.messages.count - 1, section: 0) From e8b867679946ec9f882ea44e774917d9c1d1061e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Mon, 19 Aug 2024 09:53:21 +0800 Subject: [PATCH 04/13] fix conversation badge --- .../Cells/ConversationListCell.swift | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/Cells/ConversationListCell.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/Cells/ConversationListCell.swift index df84a9ff..a6604f7e 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/Cells/ConversationListCell.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/Cells/ConversationListCell.swift @@ -76,7 +76,18 @@ import UIKit self.nickName.frame = CGRect(x: self.avatar.frame.maxX+12, y: self.avatar.frame.minX+4, width: self.contentView.frame.width-self.avatar.frame.maxX-12-16-50, height: 16) self.date.frame = CGRect(x: self.contentView.frame.width-66, y: self.nickName.frame.minY+2, width: 50, height: 16) self.content.frame = CGRect(x: self.avatar.frame.maxX+12, y: self.nickName.frame.maxY+2, width: self.contentView.frame.width-12-12-16-80, height: 20) -// self.badge.frame = CGRect(x: self.contentView.frame.width-48, y: self.nickName.frame.maxY+5, width: 32, height: 18) + var badgeWidth: CGFloat = 18 + if let badgeText = self.badge.text { + if badgeText.count > 2 { + badgeWidth = 32 + } else if badgeText.count > 1 { + badgeWidth = 24 + } + } + self.badge.frame = CGRect(x: self.contentView.frame.width - badgeWidth - 16, + y: self.nickName.frame.maxY + 5, + width: badgeWidth, + height: 18) self.dot.frame = CGRect(x: self.date.frame.maxX-12, y: self.nickName.frame.maxY+10, width: 8, height: 8) self.separatorLine.frame = CGRect(x: self.nickName.frame.minX, y: self.contentView.frame.height-0.5, width: self.contentView.frame.width-self.nickName.frame.minX, height: 0.5) } @@ -124,15 +135,8 @@ import UIKit } else { self.badge.isHidden = info.unreadCount <= 0 self.dot.isHidden = true - var badgeWidth = 18 - if info.unreadCount > 9 { - badgeWidth = 24 - if info.unreadCount > 99 { - badgeWidth = 32 - } - } - self.badge.frame = CGRect(x: Int(ScreenWidth)-16-badgeWidth, y: Int(self.nickName.frame.maxY)+5, width: badgeWidth, height: 18) } + self.setNeedsLayout() } From febc692ec5696bb10a7a00bf7826933c10c62eda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Tue, 20 Aug 2024 17:18:17 +0800 Subject: [PATCH 05/13] fix third keyboard raise --- .../Classes/UI/Components/Chat/Views/MessageInputBar.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageInputBar.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageInputBar.swift index 1835bc0b..f24058a9 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageInputBar.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageInputBar.swift @@ -353,13 +353,15 @@ extension MessageInputBar: UITextViewDelegate { } @objc private func keyboardWillHide(notification: Notification) { - if notification.object is MessageInputBar { + if self.rightView.isSelected { let frame = notification.chat.keyboardEndFrame let duration = notification.chat.keyboardAnimationDuration self.hiddenDuration = duration ?? 0 self.keyboardHeight = frame!.height self.showEmojiKeyboard() self.textViewFirstResponder?(true) + } else { + self.hiddenInputBar() } } From 42d9550ddd86c1f5170ddaeb4a5a3fb9b60b9660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Fri, 23 Aug 2024 10:43:11 +0800 Subject: [PATCH 06/13] fix issue --- .../Classes/UI/Components/Chat/Views/MessageListView.swift | 2 +- .../EaseChatUIKit/Classes/UI/Core/Foundation/ConsoleLog.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift index 566c447f..af14d0fa 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift @@ -807,7 +807,7 @@ extension MessageListView: IMessageListViewDriver { public func reloadReaction(message: ChatMessage) { if let index = self.messages.firstIndex(where: { $0.message.messageId == message.messageId }) { - if let indexPath = self.messageList.indexPathsForVisibleRows?.first(where: { $0.row == index }),indexPath.row > 0 { + if let indexPath = self.messageList.indexPathsForVisibleRows?.first(where: { $0.row == index }),indexPath.row >= 0 { let entity = self.convertMessage(message: message) let reactionWidth = entity.reactionMenuWidth() if reactionWidth < reactionMaxWidth-30 { diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/Foundation/ConsoleLog.swift b/Sources/EaseChatUIKit/Classes/UI/Core/Foundation/ConsoleLog.swift index fdd7ade5..91a251ab 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/Foundation/ConsoleLog.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/Foundation/ConsoleLog.swift @@ -49,7 +49,7 @@ private func consoleLog ( debugPrint("\(timeString) \(type.rawValue) \(fileName):\(line) EaseChatUIKit Log:\(message) function Name:\(functionName)") #else if type == .error { - Log.saveLog(" EaseChatUIKit Log:\(message)",file: file,function: function,line: line) + Log.saveLog(" EaseChatUIKit Log:\(message) \n",file: file,function: function,line: line) } #endif } From d9d443cb0bb59eb405c288c5651a68833d7f5ab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Fri, 23 Aug 2024 10:45:29 +0800 Subject: [PATCH 07/13] reload topic --- .../Classes/UI/Components/Chat/Views/MessageListView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift index af14d0fa..6cc125db 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Chat/Views/MessageListView.swift @@ -836,7 +836,7 @@ extension MessageListView: IMessageListViewDriver { public func reloadTopic(message: ChatMessage) { if let index = self.messages.firstIndex(where: { $0.message.messageId == message.messageId }) { - if let indexPath = self.messageList.indexPathsForVisibleRows?.first(where: { $0.row == index }),indexPath.row > 0 { + if let indexPath = self.messageList.indexPathsForVisibleRows?.first(where: { $0.row == index }),indexPath.row >= 0 { self.messages.replaceSubrange(index...index, with: [self.convertMessage(message: message)]) self.messageList.reloadData() } From 5605fda3294d10da2e1ba9feef124c2afad4520c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Mon, 26 Aug 2024 10:48:51 +0800 Subject: [PATCH 08/13] remove unread count mark on UIKit --- .../Conversation/ViewModel/ConversationViewModel.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift index e2db0024..02a297f8 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift @@ -448,7 +448,7 @@ extension ConversationViewModel: ConversationServiceListener { @objc open func conversationMessageAlreadyReadOnOtherDevice(info: ConversationInfo) { info.unreadCount = 0 - self.service?.markAllMessagesAsRead(conversationId: info.id) +// self.service?.markAllMessagesAsRead(conversationId: info.id) self.driver?.swipeMenuOperation(info: info, type: .read) } } From 78234a7dfffd7aeb738ad2a8da79d2650f04de5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Tue, 27 Aug 2024 10:40:44 +0800 Subject: [PATCH 09/13] fix --- .../Conversation/ViewModel/ConversationViewModel.swift | 8 ++++++++ .../DialogManager/PageContainersDialogController.swift | 7 +++++++ .../DialogManager/UIViewController+Presentation.swift | 1 + 3 files changed, 16 insertions(+) diff --git a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift index 02a297f8..2fcec401 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Components/Conversation/ViewModel/ConversationViewModel.swift @@ -448,6 +448,14 @@ extension ConversationViewModel: ConversationServiceListener { @objc open func conversationMessageAlreadyReadOnOtherDevice(info: ConversationInfo) { info.unreadCount = 0 + if let infos = ChatClient.shared().chatManager?.getAllConversations(true) { + let items = self.mapper(objects: infos) + var count = UInt(0) + for item in items where item.doNotDisturb == false { + count += item.unreadCount + } + self.service?.notifyUnreadCount(count: count) + } // self.service?.markAllMessagesAsRead(conversationId: info.id) self.driver?.swipeMenuOperation(info: info, type: .read) } diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PageContainersDialogController.swift b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PageContainersDialogController.swift index a54eb925..de34aa1f 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PageContainersDialogController.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/PageContainersDialogController.swift @@ -21,6 +21,8 @@ import UIKit private var pageTitles = [String]() private var childControllers = [UIViewController]() + + public var willRemoveClosure: (() -> ())? lazy var container: PageContainer = { PageContainer(frame: CGRect(x: 0, y: 0, width: self.presentedViewComponent?.contentSize.width ?? 0, height: self.presentedViewComponent?.contentSize.height ?? 0), viewControllers: self.childControllers, indicators: self.pageTitles).cornerRadius(.medium, [.topLeft,.topRight], .clear, 0).backgroundColor(UIColor.theme.neutralColor98) @@ -63,6 +65,11 @@ import UIKit self.view.backgroundColor(.clear) self.view.addSubview(self.container) } + + public override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + self.willRemoveClosure?() + } } diff --git a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/UIViewController+Presentation.swift b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/UIViewController+Presentation.swift index fbe5988d..2aec2a1e 100644 --- a/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/UIViewController+Presentation.swift +++ b/Sources/EaseChatUIKit/Classes/UI/Core/UIKit/DialogComponent/DialogManager/UIViewController+Presentation.swift @@ -75,6 +75,7 @@ public extension UIViewController { viewController.transitioningDelegate = self present(viewController, animated: animated, completion: nil) } + } // MARK: - UIViewControllerTransitioningDelegate From 0dfb93f5c01d911ea14815bad379622838c768f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Tue, 27 Aug 2024 13:35:14 +0800 Subject: [PATCH 10/13] fix --- .../Service/Implement/ConversationServiceImplement.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/EaseChatUIKit/Classes/Service/Implement/ConversationServiceImplement.swift b/Sources/EaseChatUIKit/Classes/Service/Implement/ConversationServiceImplement.swift index eb8b7db9..b65609e9 100644 --- a/Sources/EaseChatUIKit/Classes/Service/Implement/ConversationServiceImplement.swift +++ b/Sources/EaseChatUIKit/Classes/Service/Implement/ConversationServiceImplement.swift @@ -450,7 +450,7 @@ extension ConversationServiceImplement: ChatEventsListener { } @objc open func onConversationReadCallback(conversation: ChatConversation ) { - conversation.markAllMessages(asRead: nil) +// conversation.markAllMessages(asRead: nil) if let info = self.mapper(objects: [conversation]).first{ info.unreadCount = 0 for listener in self.responseDelegates.allObjects { From e1df933b84a51a019314bd32988b1b85baa21768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Wed, 28 Aug 2024 11:47:04 +0800 Subject: [PATCH 11/13] change log --- EaseChatUIKitChangeLog.md | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 EaseChatUIKitChangeLog.md diff --git a/EaseChatUIKitChangeLog.md b/EaseChatUIKitChangeLog.md new file mode 100644 index 00000000..731fec21 --- /dev/null +++ b/EaseChatUIKitChangeLog.md @@ -0,0 +1,50 @@ +# EaseChatUIKit change log + +## 4.8.0 +1.消息页面新增功能 +- 消息置顶 +- 文本消息URL预览 +- 消息输入中状态 + +2.联系人 +- 黑名单 + +## 4.6.0 + +1.会话列表界面 +- 会话置顶 +- 会话删除 +- 会话免打扰 +- 会话已读 +- 更多扩展操作菜单 + +2.联系人列表界面 +- 联系人列表 +- 好友请求 +- 群组列表及其后续 + +3.聊天界面 + +- 消息内容的显示可配置 +- 消息扩展功能复制、删除、多选合并转发、单条转发、撤回、创建话题(群内消息)、表情回应、消息回复、消息翻译、消息举报、消息编辑。 +- 发送文本、音频、视频、文件、联系人名片、表情、图片。 +- 各种消息的预览。 +- 消息气泡两种样式切换。 +- 后续消息搜索等。 + +4.公共UI组件 +- 导航栏 +- 弹窗 +- 底部弹层 +- Loading页面 +- Toast工具 +- 图片加载存储组件 +- 换肤协议工具 +- 字体工具类 +- 主题颜色工具类 + +5.工具类 +- 国际化工具 +- 音频amr格式转换工具 +- 各种扩展工具 + From 4c308e225e603d3985efcfd1b7b0c0c6adac18fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Thu, 29 Aug 2024 10:22:41 +0800 Subject: [PATCH 12/13] change image --- Documentation/IndicatorImages/contactInfo.png | Bin 81701 -> 32953 bytes Documentation/IndicatorImages/groupInfo.png | Bin 0 -> 81701 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Documentation/IndicatorImages/groupInfo.png diff --git a/Documentation/IndicatorImages/contactInfo.png b/Documentation/IndicatorImages/contactInfo.png index 8e9bad3beba3b24f98e4befdda71ca9e991451fd..ce87a98ef76b42003f3a89d024a3406dc3b7481b 100644 GIT binary patch literal 32953 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 VeWHnd6CB{@sNQjO!6Cbl{{e77oy7nE diff --git a/Documentation/IndicatorImages/groupInfo.png b/Documentation/IndicatorImages/groupInfo.png new file mode 100644 index 0000000000000000000000000000000000000000..8e9bad3beba3b24f98e4befdda71ca9e991451fd GIT binary patch literal 81701 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 VeWHnd6CB{@sNQjO!6Cbl{{e77oy7nE literal 0 HcmV?d00001 From 22c6b040a93b86aa8928ad18e3b3885898534652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E7=BB=A7=E8=B6=85?= <984065974@qq.com> Date: Thu, 29 Aug 2024 10:26:22 +0800 Subject: [PATCH 13/13] version change --- EaseChatUIKit.podspec | 2 +- .../Classes/Service/Client/EaseChatUIKitClient.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/EaseChatUIKit.podspec b/EaseChatUIKit.podspec index 060ff526..398b3487 100644 --- a/EaseChatUIKit.podspec +++ b/EaseChatUIKit.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'EaseChatUIKit' - s.version = '4.8.0' + s.version = '4.9.0' s.summary = 'A easy for use ChatUIKit.' # This description is used to generate tags and improve search results. diff --git a/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift b/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift index 04d959fc..88dadd4d 100644 --- a/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift +++ b/Sources/EaseChatUIKit/Classes/Service/Client/EaseChatUIKitClient.swift @@ -1,6 +1,6 @@ import Foundation -public let EaseChatUIKit_VERSION = "4.8.0" +public let EaseChatUIKit_VERSION = "4.9.0" public let cache_update_notification = "EaseChatUIKitContextUpdateCache"