ios: automatic message deletion (#1160)

This commit is contained in:
JRoberts
2022-10-03 16:42:43 +04:00
committed by GitHub
parent 575706c7c7
commit 6e9e6057af
8 changed files with 167 additions and 30 deletions
+1
View File
@@ -32,6 +32,7 @@ final class ChatModel: ObservableObject {
@Published var terminalItems: [TerminalItem] = []
@Published var userAddress: String?
@Published var userSMPServers: [String]?
@Published var chatItemTTL: ChatItemTTL = .none
@Published var appOpenUrl: URL?
@Published var deviceToken: DeviceToken?
@Published var savedToken: DeviceToken?
+12 -1
View File
@@ -132,7 +132,7 @@ func apiCreateActiveUser(_ p: Profile) throws -> User {
}
func apiStartChat() throws -> Bool {
let r = chatSendCmdSync(.startChat(subscribe: true))
let r = chatSendCmdSync(.startChat(subscribe: true, expire: true))
switch r {
case .chatStarted: return true
case .chatRunning: return false
@@ -319,6 +319,16 @@ func setUserSMPServers(smpServers: [String]) async throws {
try await sendCommandOkResp(.setUserSMPServers(smpServers: smpServers))
}
func getChatItemTTL() throws -> ChatItemTTL {
let r = chatSendCmdSync(.apiGetChatItemTTL)
if case let .chatItemTTL(chatItemTTL) = r { return ChatItemTTL(chatItemTTL) }
throw r
}
func setChatItemTTL(_ chatItemTTL: ChatItemTTL) async throws {
try await sendCommandOkResp(.apiSetChatItemTTL(seconds: chatItemTTL.seconds))
}
func getNetworkConfig() async throws -> NetCfg? {
let r = await chatSendCmd(.apiGetNetworkConfig)
if case let .networkConfig(cfg) = r { return cfg }
@@ -757,6 +767,7 @@ func startChat() throws {
if justStarted {
m.userAddress = try apiGetUserAddress()
m.userSMPServers = try getUserSMPServers()
m.chatItemTTL = try getChatItemTTL()
let chats = try apiGetChats()
m.chats = chats.map { Chat.init($0) }
NtfManager.shared.setNtfBadgeCount(m.totalUnreadCount())