From f3736da10365a8d30f8f2e2c03e9123aa7c00f10 Mon Sep 17 00:00:00 2001 From: or-else Date: Wed, 8 Jun 2022 11:38:22 -0700 Subject: [PATCH] pagination is mostly OK now --- Tinodios/MessageInteractor.swift | 15 ++++++--------- TinodiosDB/BaseDb.swift | 2 +- TinodiosDB/MessageDb.swift | 1 + 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Tinodios/MessageInteractor.swift b/Tinodios/MessageInteractor.swift index 399c2318..00014fcc 100644 --- a/Tinodios/MessageInteractor.swift +++ b/Tinodios/MessageInteractor.swift @@ -374,16 +374,13 @@ class MessageInteractor: DefaultComTopic.Listener, MessageBusinessLogic, Message /// Load the most recent `kMessagesPerPage` messages from cache. func loadMessagesFromCache(scrollToMostRecentMessage: Bool = true) { + guard let t = self.topic else { return } self.messageInteractorQueue.async { - self.topic?.loadMessagePage(startWithSeq: Int.max, pageSize: MessageInteractor.kMessagesPerPage, forward: false, onLoaded: {(messagePage, error) in - if let err = error { - Cache.log.error("Failed to load message page: %@", err.localizedDescription) - } else { - // Replace messages with the new page. - self.messages = messagePage!.map { $0 as! StoredMessage }.reversed() - self.presenter?.presentMessages(messages: self.messages, scrollToMostRecentMessage) - } - }) + if let messagePage = BaseDb.sharedInstance.sqlStore?.getMessagePage(topic: t, from: Int.max, limit: MessageInteractor.kMessagesPerPage, forward: false) { + // Replace messages with the new page. + self.messages = messagePage.map { $0 as! StoredMessage }.reversed() + self.presenter?.presentMessages(messages: self.messages, scrollToMostRecentMessage) + } } } diff --git a/TinodiosDB/BaseDb.swift b/TinodiosDB/BaseDb.swift index 1fbd8137..e74d757b 100644 --- a/TinodiosDB/BaseDb.swift +++ b/TinodiosDB/BaseDb.swift @@ -2,7 +2,7 @@ // BaseDb.swift // ios // -// Copyright © 2019 Tinode. All rights reserved. +// Copyright © 2019-2022 Tinode. All rights reserved. // import Foundation diff --git a/TinodiosDB/MessageDb.swift b/TinodiosDB/MessageDb.swift index 9464057c..f5d56b07 100644 --- a/TinodiosDB/MessageDb.swift +++ b/TinodiosDB/MessageDb.swift @@ -336,6 +336,7 @@ public class MessageDb { } return nil } + func queryDeleted(topicId: Int64?, hard: Bool) -> [MsgRange]? { guard let topicId = topicId else { return nil } let status = hard ? BaseDb.Status.deletedHard : BaseDb.Status.deletedSoft