Implement message sending. Refactor the timeline. Fix various UI/UX issues and add scroll to bottom timeline button.

This commit is contained in:
Stefan Ceriu
2022-04-18 10:54:48 +03:00
parent 2e92653c9d
commit 7f1c24059f
34 changed files with 802 additions and 262 deletions
@@ -30,4 +30,8 @@ class MockRoomTimelineController: RoomTimelineControllerProtocol {
func processItemDisappearance(_ itemId: String) {
}
func sendMessage(_ message: String) {
}
}
@@ -79,6 +79,10 @@ class RoomTimelineController: RoomTimelineControllerProtocol {
}
func sendMessage(_ message: String) {
timelineProvider.sendMessage(message)
}
// MARK: - Private
@objc private func contentSizeCategoryDidChange() {
@@ -27,4 +27,6 @@ protocol RoomTimelineControllerProtocol {
func processItemAppearance(_ itemId: String)
func processItemDisappearance(_ itemId: String)
func sendMessage(_ message: String)
}
@@ -28,6 +28,10 @@ class RoomTimelineProvider: RoomTimelineProviderProtocol {
}.store(in: &cancellables)
}
var messages: [RoomMessageProtocol] {
roomProxy.messages
}
func paginateBackwards(_ count: UInt, callback: ((Result<Void, RoomTimelineError>) -> Void)?) {
self.roomProxy.paginateBackwards(count: count) { result in
switch result {
@@ -39,7 +43,14 @@ class RoomTimelineProvider: RoomTimelineProviderProtocol {
}
}
var messages: [RoomMessageProtocol] {
roomProxy.messages
func sendMessage(_ message: String) {
roomProxy.sendMessage(message) { result in
switch result {
case .success:
break
case .failure(let error):
MXLog.error("Failed sending message with error: \(error)")
}
}
}
}
@@ -23,4 +23,6 @@ protocol RoomTimelineProviderProtocol {
var messages: [RoomMessageProtocol] { get }
func paginateBackwards(_ count: UInt, callback: ((Result<Void, RoomTimelineError>) -> Void)?)
func sendMessage(_ message: String)
}