Skip to content

Commit

Permalink
v3.0.920-1
Browse files Browse the repository at this point in the history
  • Loading branch information
suryansh-cometchat committed May 2, 2024
1 parent ac77cfc commit 0cb6e5e
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,8 @@ public class CometChatMessageList: UIViewController, AVAudioRecorderDelegate, AV
let calendar = Calendar.current
var lastMessage: BaseMessage?
var newSectionMessages = [BaseMessage]()
private var isloadingPreviousMessage = false
private var lastContentOffset: CGFloat = 0
private var currentState: AudioRecodingState = .ready {
didSet {
self.audioNotePauseButton.setImage(self.currentState.buttonImage, for: .normal)
Expand Down Expand Up @@ -374,44 +376,46 @@ public class CometChatMessageList: UIViewController, AVAudioRecorderDelegate, AV
return date.reduceToMonthDayYear()
}
var sortedKeys = groupedMessages.keys.sorted()
DispatchQueue.main.async {
self.refreshControl?.endRefreshing()
}

var newAddedSections = 0
sortedKeys = sortedKeys.reversed()
sortedKeys.forEach { (key) in
var values = groupedMessages[key]
values = values?.reversed()
values?.forEach { (baseMessage) in
DispatchQueue.main.async {
if let firstMessage = self.chatMessages[0].first {
if String().compareDates(newTimeInterval: firstMessage.sentAt, currentTimeInterval: baseMessage.sentAt) {
if let visibleIndexPath = self.tableView?.indexPathsForVisibleRows?.first, let tableView = self.tableView {
self.chatMessages[0].insert( baseMessage , at: 0)
tableView.beginUpdates()
tableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .none)
guard let newVisibleIndexPath = tableView.indexPathForRow(at: tableView.rectForRow(at: visibleIndexPath).origin) else { return }
let adjustedOffsetY = tableView.rectForRow(at: newVisibleIndexPath).minY
tableView.setContentOffset(CGPoint(x: 0, y: adjustedOffsetY), animated: false)
}
self.tableView?.endUpdates()
} else {
if let visibleIndexPath = self.tableView?.indexPathsForVisibleRows?.first, let tableView = self.tableView {
self.newSectionMessages.append(baseMessage)
self.chatMessages.insert( self.newSectionMessages , at: 0)
tableView.beginUpdates()
tableView.insertSections([0], with: .none)
tableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .none)
guard let newVisibleIndexPath = tableView.indexPathForRow(at: tableView.rectForRow(at: visibleIndexPath).origin) else { return }
let adjustedOffsetY = tableView.rectForRow(at: newVisibleIndexPath).minY
tableView.setContentOffset(CGPoint(x: 0, y: adjustedOffsetY), animated: false)
}
self.tableView?.endUpdates()
self.newSectionMessages.removeAll()
}
if let firstMessage = self.chatMessages[0].first {
if String().compareDates(newTimeInterval: firstMessage.sentAt, currentTimeInterval: baseMessage.sentAt) {
self.chatMessages[0].insert( baseMessage , at: 0)
} else {

newSectionMessages.append(baseMessage)
self.chatMessages.insert( newSectionMessages , at: 0)
newAddedSections += 1
newSectionMessages.removeAll()
}
}
}

DispatchQueue.main.async{ [weak self] in
guard let strongSelf = self else { return }
strongSelf.refreshControl?.endRefreshing()
}

DispatchQueue.main.async{[weak self] in
guard let this = self else { return }
guard let tableView = this.tableView else {return}
if messages.count != 0 {
let firstCellOffset = tableView.rectForRow(at: IndexPath(row: 0, section: 0))
let numberOfRowsInSection = tableView.numberOfRows(inSection: 0)
tableView.reloadData()
var scrollToItem = messages.count
if newAddedSections != 0 {
let totalNumberOfRowsInCurrentPresentedSection = this.chatMessages[newAddedSections].count
scrollToItem = totalNumberOfRowsInCurrentPresentedSection - numberOfRowsInSection
}
tableView.scrollToRow(at: IndexPath(item: scrollToItem, section: newAddedSections), at: .top, animated: false)
tableView.contentOffset.y -= firstCellOffset.minY - (tableView.tableHeaderView?.frame.height ?? 0) - 50

this.isloadingPreviousMessage = false
}
}
}
Expand Down Expand Up @@ -2183,7 +2187,7 @@ public class CometChatMessageList: UIViewController, AVAudioRecorderDelegate, AV
self.tableView?.dataSource = self
self.tableView?.separatorColor = .clear
self.tableView?.setEmptyMessage("LOADING".localized())
self.addRefreshControl(inTableView: true)
// self.addRefreshControl(inTableView: true)
// Added Long Press
let longPressOnMessage = UILongPressGestureRecognizer(target: self, action: #selector(didLongPressedOnMessage))
tableView?.addGestureRecognizer(longPressOnMessage)
Expand Down Expand Up @@ -2420,6 +2424,7 @@ public class CometChatMessageList: UIViewController, AVAudioRecorderDelegate, AV
guard let request = messageRequest else {
return
}
isloadingPreviousMessage = true
FeatureRestriction.isMessageHistoryEnabled { (success) in
if success == .enabled {
self.fetchPreviousMessages(messageReq: request)
Expand Down Expand Up @@ -3521,6 +3526,20 @@ extension CometChatMessageList: UITableViewDelegate , UITableViewDataSource {
public func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return (section == chatMessages.count - 1) ? 16 : 0
}

public func scrollViewDidScroll(_ scrollView: UIScrollView) {

if let yOffset = self.tableView?.contentOffset.y {
if isloadingPreviousMessage == false && (scrollView.isDragging || scrollView.isDecelerating) {
if yOffset <= 10 && yOffset > lastContentOffset {
loadPreviousMessages(true)
}
}

lastContentOffset = yOffset
}

}
}


Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

<a href=""><img src="https://img.shields.io/badge/Repo%20Size-15.6%20MB-brightgreen" /></a>
<a href=""> <img src="https://img.shields.io/badge/Contributors-5-yellowgreen" /></a>
<a href=" "> <img src="https://img.shields.io/badge/Version-3.0.910--1-red" /></a>
<a href=" "> <img src="https://img.shields.io/badge/Version-3.0.920-1-red" /></a>
<a href=""> <img src="https://img.shields.io/github/stars/cometchat-pro/ios-swift-chat-app?style=social" /></a>
<a href=""> <img src="https://img.shields.io/twitter/follow/cometchat?style=social" /></a>

Expand Down

0 comments on commit 0cb6e5e

Please sign in to comment.