Cleaned up session overview services

This commit is contained in:
Stefan Ceriu
2022-09-27 17:44:38 +03:00
committed by Stefan Ceriu
parent 7eee1cceab
commit c2f9a19316
3 changed files with 43 additions and 72 deletions
@@ -82,31 +82,10 @@ class UserSessionsOverviewService: UserSessionsOverviewServiceProtocol {
.sorted { $0.lastSeenTs > $1.lastSeenTs }
.map { sessionInfo(from: $0, isCurrentSession: $0.deviceId == mxSession.myDeviceId) }
var currentSession: UserSessionInfo?
var unverifiedSessions: [UserSessionInfo] = []
var inactiveSessions: [UserSessionInfo] = []
var otherSessions: [UserSessionInfo] = []
for session in allSessions {
if session.isCurrent {
currentSession = session
} else {
otherSessions.append(session)
if session.isVerified == false {
unverifiedSessions.append(session)
}
if session.isActive == false {
inactiveSessions.append(session)
}
}
}
return UserSessionsOverviewData(currentSession: currentSession,
unverifiedSessions: unverifiedSessions,
inactiveSessions: inactiveSessions,
otherSessions: otherSessions)
return UserSessionsOverviewData(currentSession: allSessions.filter(\.isCurrent).first,
unverifiedSessions: allSessions.filter { !$0.isVerified },
inactiveSessions: allSessions.filter { !$0.isActive },
otherSessions: allSessions.filter { !$0.isCurrent })
}
private func sessionInfo(from device: MXDevice, isCurrentSession: Bool) -> UserSessionInfo {
@@ -28,49 +28,44 @@ class MockUserSessionsOverviewService: UserSessionsOverviewServiceProtocol {
}
init() {
let currentSession = UserSessionInfo(id: "alice",
name: "iOS",
deviceType: .mobile,
isVerified: false,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: nil,
isActive: true,
isCurrent: true)
let otherSessions: [UserSessionInfo] = [
UserSessionInfo(id: "1",
name: "macOS",
deviceType: .desktop,
isVerified: true,
lastSeenIP: "1.0.0.1",
lastSeenTimestamp: Date().timeIntervalSince1970 - 130_000,
isActive: false,
isCurrent: false),
UserSessionInfo(id: "2",
name: "Firefox on Windows",
deviceType: .web,
isVerified: true,
lastSeenIP: "2.0.0.2",
lastSeenTimestamp: Date().timeIntervalSince1970 - 100,
isActive: true,
isCurrent: false),
UserSessionInfo(id: "3",
name: "Android",
deviceType: .mobile,
isVerified: false,
lastSeenIP: "3.0.0.3",
lastSeenTimestamp: Date().timeIntervalSince1970 - 10,
isActive: true,
isCurrent: false)
]
let unverifiedSessions: [UserSessionInfo] = otherSessions.filter { !$0.isVerified }
let inactiveSessions: [UserSessionInfo] = otherSessions.filter { !$0.isActive }
overviewData = UserSessionsOverviewData(currentSession: currentSession,
unverifiedSessions: unverifiedSessions,
inactiveSessions: inactiveSessions,
otherSessions: otherSessions)
overviewData = UserSessionsOverviewData(currentSession: Self.allSessions.filter(\.isCurrent).first,
unverifiedSessions: Self.allSessions.filter { !$0.isVerified },
inactiveSessions: Self.allSessions.filter { !$0.isActive },
otherSessions: Self.allSessions.filter { !$0.isCurrent })
}
static var allSessions: [UserSessionInfo] = {
[UserSessionInfo(id: "alice",
name: "iOS",
deviceType: .mobile,
isVerified: false,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: nil,
isActive: true,
isCurrent: true),
UserSessionInfo(id: "1",
name: "macOS",
deviceType: .desktop,
isVerified: true,
lastSeenIP: "1.0.0.1",
lastSeenTimestamp: Date().timeIntervalSince1970 - 130_000,
isActive: false,
isCurrent: false),
UserSessionInfo(id: "2",
name: "Firefox on Windows",
deviceType: .web,
isVerified: true,
lastSeenIP: "2.0.0.2",
lastSeenTimestamp: Date().timeIntervalSince1970 - 100,
isActive: true,
isCurrent: false),
UserSessionInfo(id: "3",
name: "Android",
deviceType: .mobile,
isVerified: false,
lastSeenIP: "3.0.0.3",
lastSeenTimestamp: Date().timeIntervalSince1970 - 10,
isActive: true,
isCurrent: false)]
}()
}