diff --git a/apps/ios/Shared/Views/ChatList/ServersSummaryView.swift b/apps/ios/Shared/Views/ChatList/ServersSummaryView.swift index ed1ff6e459..1359649773 100644 --- a/apps/ios/Shared/Views/ChatList/ServersSummaryView.swift +++ b/apps/ios/Shared/Views/ChatList/ServersSummaryView.swift @@ -100,69 +100,77 @@ struct ServersSummaryView: View { switch (selectedUserCategory, selectedServerType) { case (.allUsers, .smp): + let smpSumm = summ.allUsersSMP + let (totals, curr, prev, prox) = (smpSumm.smpTotals, smpSumm.currentlyUsedSMPServers, smpSumm.previouslyUsedSMPServers, smpSumm.onlyProxiedSMPServers) - SMPSubsView(subs: summ.allSMPTotal.subs) + SMPSubsView(subs: totals.subs) - ServerSessionsView(sess: summ.allSMPTotal.sessions) + ServerSessionsView(sess: totals.sessions) - if summ.allUsedSMP.count > 0 { - smpServersListView(summ.allUsedSMP, showReconnectButton: true, summ.statsStartedAt, "Current app session") + if curr.count > 0 { + smpServersListView(curr, showReconnectButton: true, summ.statsStartedAt, "Current app session") } - if summ.allPrevSMP.count > 0 { - smpServersListView(summ.allPrevSMP, showReconnectButton: false, summ.statsStartedAt, "Previously used") + if prev.count > 0 { + smpServersListView(prev, showReconnectButton: false, summ.statsStartedAt, "Previously used") } - if summ.allProxSMP.count > 0 { - smpServersListView(summ.allProxSMP, showReconnectButton: false, summ.statsStartedAt, "Proxied", "You are not connected to these servers directly.") + if prox.count > 0 { + smpServersListView(prox, showReconnectButton: false, summ.statsStartedAt, "Proxied", "You are not connected to these servers directly.") } - SMPStatsView(stats: summ.allSMPTotal.stats, statsStartedAt: summ.statsStartedAt) + SMPStatsView(stats: totals.stats, statsStartedAt: summ.statsStartedAt) resetStatsButtonSection() case (.currentUser, .smp): + let smpSumm = summ.currentUserSMP + let (totals, curr, prev, prox) = (smpSumm.smpTotals, smpSumm.currentlyUsedSMPServers, smpSumm.previouslyUsedSMPServers, smpSumm.onlyProxiedSMPServers) - SMPSubsView(subs: summ.userSMPTotal.subs) + SMPSubsView(subs: totals.subs) - ServerSessionsView(sess: summ.userSMPTotal.sessions) + ServerSessionsView(sess: totals.sessions) - if summ.userUsedSMP.count > 0 { - smpServersListView(summ.userUsedSMP, showReconnectButton: true, summ.statsStartedAt, "Current app session") + if curr.count > 0 { + smpServersListView(curr, showReconnectButton: true, summ.statsStartedAt, "Current app session") } - if summ.userPrevSMP.count > 0 { - smpServersListView(summ.userPrevSMP, showReconnectButton: false, summ.statsStartedAt, "Previously used") + if prev.count > 0 { + smpServersListView(prev, showReconnectButton: false, summ.statsStartedAt, "Previously used") } - if summ.userProxSMP.count > 0 { - smpServersListView(summ.userProxSMP, showReconnectButton: false, summ.statsStartedAt, "Proxied", "You are not connected to these servers directly.") + if prox.count > 0 { + smpServersListView(prox, showReconnectButton: false, summ.statsStartedAt, "Proxied", "You are not connected to these servers directly.") } - SMPStatsView(stats: summ.userSMPTotal.stats, statsStartedAt: summ.statsStartedAt) + SMPStatsView(stats: totals.stats, statsStartedAt: summ.statsStartedAt) resetStatsButtonSection() case (.allUsers, .xftp): + let xftpSumm = summ.allUsersXFTP + let (totals, curr, prev) = (xftpSumm.xftpTotals, xftpSumm.currentlyUsedXFTPServers, xftpSumm.previouslyUsedXFTPServers) - ServerSessionsView(sess: summ.allXFTPTotal.sessions) + ServerSessionsView(sess: totals.sessions) - if summ.allUsedXFTP.count > 0 { - xftpServersListView(summ.allUsedXFTP, summ.statsStartedAt, "Current app session") + if curr.count > 0 { + xftpServersListView(curr, summ.statsStartedAt, "Current app session") } - if summ.allPrevXFTP.count > 0 { - xftpServersListView(summ.allPrevXFTP, summ.statsStartedAt, "Previously used") + if prev.count > 0 { + xftpServersListView(prev, summ.statsStartedAt, "Previously used") } - XFTPStatsView(stats: summ.allXFTPTotal.stats, statsStartedAt: summ.statsStartedAt) + XFTPStatsView(stats: totals.stats, statsStartedAt: summ.statsStartedAt) resetStatsButtonSection() case (.currentUser, .xftp): + let xftpSumm = summ.currentUserXFTP + let (totals, curr, prev) = (xftpSumm.xftpTotals, xftpSumm.currentlyUsedXFTPServers, xftpSumm.previouslyUsedXFTPServers) - ServerSessionsView(sess: summ.userXFTPTotal.sessions) + ServerSessionsView(sess: totals.sessions) - if summ.userUsedXFTP.count > 0 { - xftpServersListView(summ.userUsedXFTP, summ.statsStartedAt, "Current app session") + if curr.count > 0 { + xftpServersListView(curr, summ.statsStartedAt, "Current app session") } - if summ.userPrevXFTP.count > 0 { - xftpServersListView(summ.userPrevXFTP, summ.statsStartedAt, "Previously used") + if prev.count > 0 { + xftpServersListView(prev, summ.statsStartedAt, "Previously used") } - XFTPStatsView(stats: summ.userXFTPTotal.stats, statsStartedAt: summ.statsStartedAt) + XFTPStatsView(stats: totals.stats, statsStartedAt: summ.statsStartedAt) resetStatsButtonSection() } diff --git a/apps/ios/SimpleXChat/APITypes.swift b/apps/ios/SimpleXChat/APITypes.swift index 3087d1fcca..89417009cf 100644 --- a/apps/ios/SimpleXChat/APITypes.swift +++ b/apps/ios/SimpleXChat/APITypes.swift @@ -2252,36 +2252,17 @@ public enum MsgType: String, Codable { public struct PresentedServersSummary: Codable { public var statsStartedAt: Date - public var currentUserServers: ServersSummary - public var allUsersServers: ServersSummary - - public var allSMPTotal: SMPTotals { self.allUsersServers.smpTotals } - public var allUsedSMP: [SMPServerSummary] { self.allUsersServers.currentlyUsedSMPServers } - public var allPrevSMP: [SMPServerSummary] { self.allUsersServers.previouslyUsedSMPServers } - public var allProxSMP: [SMPServerSummary] { self.allUsersServers.onlyProxiedSMPServers } - - public var userSMPTotal: SMPTotals { self.currentUserServers.smpTotals } - public var userUsedSMP: [SMPServerSummary] { self.currentUserServers.currentlyUsedSMPServers } - public var userPrevSMP: [SMPServerSummary] { self.currentUserServers.previouslyUsedSMPServers } - public var userProxSMP: [SMPServerSummary] { self.currentUserServers.onlyProxiedSMPServers } - - public var allXFTPTotal: XFTPTotals { self.allUsersServers.xftpTotals } - public var allUsedXFTP: [XFTPServerSummary] { self.allUsersServers.currentlyUsedXFTPServers } - public var allPrevXFTP: [XFTPServerSummary] { self.allUsersServers.previouslyUsedXFTPServers } - - public var userXFTPTotal: XFTPTotals { self.currentUserServers.xftpTotals } - public var userUsedXFTP: [XFTPServerSummary] { self.currentUserServers.currentlyUsedXFTPServers } - public var userPrevXFTP: [XFTPServerSummary] { self.currentUserServers.previouslyUsedXFTPServers } + public var allUsersSMP: SMPServersSummary + public var allUsersXFTP: XFTPServersSummary + public var currentUserSMP: SMPServersSummary + public var currentUserXFTP: XFTPServersSummary } -public struct ServersSummary: Codable { +public struct SMPServersSummary: Codable { public var smpTotals: SMPTotals public var currentlyUsedSMPServers: [SMPServerSummary] public var previouslyUsedSMPServers: [SMPServerSummary] public var onlyProxiedSMPServers: [SMPServerSummary] - public var xftpTotals: XFTPTotals - public var currentlyUsedXFTPServers: [XFTPServerSummary] - public var previouslyUsedXFTPServers: [XFTPServerSummary] } public struct SMPTotals: Codable { @@ -2346,6 +2327,12 @@ public struct AgentSMPServerStatsData: Codable { public var _connSubErrs: Int64 } +public struct XFTPServersSummary: Codable { + public var xftpTotals: XFTPTotals + public var currentlyUsedXFTPServers: [XFTPServerSummary] + public var previouslyUsedXFTPServers: [XFTPServerSummary] +} + public struct XFTPTotals: Codable { public var sessions: ServerSessions public var stats: AgentXFTPServerStatsData