mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Renamed session to sessionInfo
This commit is contained in:
parent
3deee90005
commit
34aa035ead
9 changed files with 42 additions and 42 deletions
|
@ -27,7 +27,6 @@ class InactiveUserSessionLastActivityFormatter {
|
|||
|
||||
static func lastActivityDateString(from lastActivityTimestamp: TimeInterval) -> String {
|
||||
let date = Date(timeIntervalSince1970: lastActivityTimestamp)
|
||||
|
||||
return InactiveUserSessionLastActivityFormatter.dateFormatter.string(from: date)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ final class UserSessionsFlowCoordinator: Coordinator, Presentable {
|
|||
guard let self = self else { return }
|
||||
switch result {
|
||||
case let .openSessionOverview(sessionInfo: sessionInfo):
|
||||
self.openSessionOverview(sessionsInfo: sessionInfo)
|
||||
self.openSessionOverview(sessionInfo: sessionInfo)
|
||||
case let .openOtherSessions(sessionsInfo: sessionsInfo, filter: filter):
|
||||
self.openOtherSessions(sessionsInfo: sessionsInfo, filterBy: filter, title: VectorL10n.userOtherSessionSecurityRecommendationTitle)
|
||||
}
|
||||
|
@ -72,20 +72,21 @@ final class UserSessionsFlowCoordinator: Coordinator, Presentable {
|
|||
return UserSessionDetailsCoordinator(parameters: parameters)
|
||||
}
|
||||
|
||||
private func openSessionOverview(sessionsInfo: UserSessionInfo) {
|
||||
let coordinator = createUserSessionOverviewCoordinator(sessionsInfo: sessionsInfo)
|
||||
private func openSessionOverview(sessionInfo: UserSessionInfo) {
|
||||
let coordinator = createUserSessionOverviewCoordinator(sessionInfo: sessionInfo)
|
||||
coordinator.completion = { [weak self] result in
|
||||
guard let self = self else { return }
|
||||
switch result {
|
||||
case let .openSessionDetails(sessionInfo: session):
|
||||
self.openSessionDetails(sessionInfo: session)
|
||||
case let .openSessionDetails(sessionInfo: sessionInfo):
|
||||
self.openSessionDetails(sessionInfo: sessionInfo)
|
||||
}
|
||||
}
|
||||
pushScreen(with: coordinator)
|
||||
}
|
||||
|
||||
private func createUserSessionOverviewCoordinator(sessionsInfo: UserSessionInfo) -> UserSessionOverviewCoordinator {
|
||||
let parameters = UserSessionOverviewCoordinatorParameters(session: parameters.session, sessionInfo: sessionsInfo)
|
||||
private func createUserSessionOverviewCoordinator(sessionInfo: UserSessionInfo) -> UserSessionOverviewCoordinator {
|
||||
let parameters = UserSessionOverviewCoordinatorParameters(session: parameters.session,
|
||||
sessionInfo: sessionInfo)
|
||||
return UserSessionOverviewCoordinator(parameters: parameters)
|
||||
}
|
||||
|
||||
|
|
|
@ -44,9 +44,3 @@ enum UserOtherSessionsSection: Hashable, Identifiable {
|
|||
enum UserOtherSessionsViewAction {
|
||||
case userOtherSessionSelected(sessionId: String)
|
||||
}
|
||||
|
||||
enum OtherUserSessionsFilter {
|
||||
case all
|
||||
case inactive
|
||||
case unverified
|
||||
}
|
||||
|
|
|
@ -18,6 +18,12 @@ import SwiftUI
|
|||
|
||||
typealias UserOtherSessionsViewModelType = StateStoreViewModel<UserOtherSessionsViewState, UserOtherSessionsViewAction>
|
||||
|
||||
enum OtherUserSessionsFilter {
|
||||
case all
|
||||
case inactive
|
||||
case unverified
|
||||
}
|
||||
|
||||
class UserOtherSessionsViewModel: UserOtherSessionsViewModelType, UserOtherSessionsViewModelProtocol {
|
||||
var completion: ((UserOtherSessionsViewModelResult) -> Void)?
|
||||
private let sessionsInfo: [UserSessionInfo]
|
||||
|
|
|
@ -40,7 +40,7 @@ final class UserSessionDetailsCoordinator: Coordinator, Presentable {
|
|||
init(parameters: UserSessionDetailsCoordinatorParameters) {
|
||||
self.parameters = parameters
|
||||
|
||||
let viewModel = UserSessionDetailsViewModel(session: parameters.sessionInfo)
|
||||
let viewModel = UserSessionDetailsViewModel(sessionInfo: parameters.sessionInfo)
|
||||
let view = UserSessionDetails(viewModel: viewModel.context)
|
||||
userSessionDetailsViewModel = viewModel
|
||||
userSessionDetailsHostingController = VectorHostingController(rootView: view)
|
||||
|
|
|
@ -38,10 +38,10 @@ enum MockUserSessionDetailsScreenState: MockScreenState, CaseIterable {
|
|||
|
||||
/// Generate the view struct for the screen state.
|
||||
var screenView: ([Any], AnyView) {
|
||||
let session: UserSessionInfo
|
||||
let sessionInfo: UserSessionInfo
|
||||
switch self {
|
||||
case .allSections:
|
||||
session = UserSessionInfo(id: "alice",
|
||||
sessionInfo = UserSessionInfo(id: "alice",
|
||||
name: "iOS",
|
||||
deviceType: .mobile,
|
||||
isVerified: false,
|
||||
|
@ -57,7 +57,7 @@ enum MockUserSessionDetailsScreenState: MockScreenState, CaseIterable {
|
|||
isActive: true,
|
||||
isCurrent: true)
|
||||
case .sessionSectionOnly:
|
||||
session = UserSessionInfo(id: "3",
|
||||
sessionInfo = UserSessionInfo(id: "3",
|
||||
name: "Android",
|
||||
deviceType: .mobile,
|
||||
isVerified: false,
|
||||
|
@ -73,12 +73,12 @@ enum MockUserSessionDetailsScreenState: MockScreenState, CaseIterable {
|
|||
isActive: true,
|
||||
isCurrent: false)
|
||||
}
|
||||
let viewModel = UserSessionDetailsViewModel(session: session)
|
||||
let viewModel = UserSessionDetailsViewModel(sessionInfo: sessionInfo)
|
||||
|
||||
// can simulate service and viewModel actions here if needs be.
|
||||
|
||||
return (
|
||||
[session],
|
||||
[sessionInfo],
|
||||
AnyView(UserSessionDetails(viewModel: viewModel.context))
|
||||
)
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ class UserSessionDetailsViewModelTests: XCTestCase {
|
|||
]
|
||||
|
||||
let expectedModel = UserSessionDetailsViewState(sections: sections)
|
||||
let sut = UserSessionDetailsViewModel(session: userSessionInfo)
|
||||
let sut = UserSessionDetailsViewModel(sessionInfo: userSessionInfo)
|
||||
|
||||
XCTAssertEqual(sut.state, expectedModel)
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ class UserSessionDetailsViewModelTests: XCTestCase {
|
|||
]
|
||||
|
||||
let expectedModel = UserSessionDetailsViewState(sections: sections)
|
||||
let sut = UserSessionDetailsViewModel(session: userSessionInfo)
|
||||
let sut = UserSessionDetailsViewModel(sessionInfo: userSessionInfo)
|
||||
|
||||
XCTAssertEqual(sut.state, expectedModel)
|
||||
}
|
||||
|
@ -94,7 +94,7 @@ class UserSessionDetailsViewModelTests: XCTestCase {
|
|||
]
|
||||
|
||||
let expectedModel = UserSessionDetailsViewState(sections: sections)
|
||||
let sut = UserSessionDetailsViewModel(session: userSessionInfo)
|
||||
let sut = UserSessionDetailsViewModel(sessionInfo: userSessionInfo)
|
||||
|
||||
XCTAssertEqual(sut.state, expectedModel)
|
||||
}
|
||||
|
|
|
@ -21,59 +21,59 @@ typealias UserSessionDetailsViewModelType = StateStoreViewModel<UserSessionDetai
|
|||
class UserSessionDetailsViewModel: UserSessionDetailsViewModelType, UserSessionDetailsViewModelProtocol {
|
||||
var completion: ((UserSessionDetailsViewModelResult) -> Void)?
|
||||
|
||||
init(session: UserSessionInfo) {
|
||||
init(sessionInfo: UserSessionInfo) {
|
||||
super.init(initialViewState: UserSessionDetailsViewState(sections: []))
|
||||
updateViewState(session: session)
|
||||
updateViewState(sessionInfo: sessionInfo)
|
||||
}
|
||||
|
||||
// MARK: - Public
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private func updateViewState(session: UserSessionInfo) {
|
||||
private func updateViewState(sessionInfo: UserSessionInfo) {
|
||||
var sections = [UserSessionDetailsSectionViewData]()
|
||||
|
||||
sections.append(sessionSection(session: session))
|
||||
sections.append(sessionSection(sessionInfo: sessionInfo))
|
||||
|
||||
if let applicationSection = applicationSection(session: session) {
|
||||
if let applicationSection = applicationSection(sessionInfo: sessionInfo) {
|
||||
sections.append(applicationSection)
|
||||
}
|
||||
|
||||
if let deviceSection = deviceSection(session: session) {
|
||||
if let deviceSection = deviceSection(sessionInfo: sessionInfo) {
|
||||
sections.append(deviceSection)
|
||||
}
|
||||
|
||||
state = UserSessionDetailsViewState(sections: sections)
|
||||
}
|
||||
|
||||
private func sessionSection(session: UserSessionInfo) -> UserSessionDetailsSectionViewData {
|
||||
private func sessionSection(sessionInfo: UserSessionInfo) -> UserSessionDetailsSectionViewData {
|
||||
var sessionItems: [UserSessionDetailsSectionItemViewData] = []
|
||||
|
||||
if let sessionName = session.name {
|
||||
if let sessionName = sessionInfo.name {
|
||||
sessionItems.append(.init(title: VectorL10n.userSessionDetailsSessionName,
|
||||
value: sessionName))
|
||||
}
|
||||
|
||||
sessionItems.append(.init(title: VectorL10n.keyVerificationManuallyVerifyDeviceIdTitle,
|
||||
value: session.id))
|
||||
value: sessionInfo.id))
|
||||
|
||||
return .init(header: VectorL10n.userSessionDetailsSessionSectionHeader.uppercased(),
|
||||
footer: VectorL10n.userSessionDetailsSessionSectionFooter,
|
||||
items: sessionItems)
|
||||
}
|
||||
|
||||
private func applicationSection(session: UserSessionInfo) -> UserSessionDetailsSectionViewData? {
|
||||
private func applicationSection(sessionInfo: UserSessionInfo) -> UserSessionDetailsSectionViewData? {
|
||||
var sessionItems: [UserSessionDetailsSectionItemViewData] = []
|
||||
|
||||
if let name = session.applicationName {
|
||||
if let name = sessionInfo.applicationName {
|
||||
sessionItems.append(.init(title: VectorL10n.userSessionDetailsApplicationName,
|
||||
value: name))
|
||||
}
|
||||
if let version = session.applicationVersion {
|
||||
if let version = sessionInfo.applicationVersion {
|
||||
sessionItems.append(.init(title: VectorL10n.userSessionDetailsApplicationVersion,
|
||||
value: version))
|
||||
}
|
||||
if let url = session.applicationURL {
|
||||
if let url = sessionInfo.applicationURL {
|
||||
sessionItems.append(.init(title: VectorL10n.userSessionDetailsApplicationUrl,
|
||||
value: url))
|
||||
}
|
||||
|
@ -86,22 +86,22 @@ class UserSessionDetailsViewModel: UserSessionDetailsViewModelType, UserSessionD
|
|||
items: sessionItems)
|
||||
}
|
||||
|
||||
private func deviceSection(session: UserSessionInfo) -> UserSessionDetailsSectionViewData? {
|
||||
private func deviceSection(sessionInfo: UserSessionInfo) -> UserSessionDetailsSectionViewData? {
|
||||
var deviceSectionItems = [UserSessionDetailsSectionItemViewData]()
|
||||
|
||||
if let model = session.deviceModel {
|
||||
if let model = sessionInfo.deviceModel {
|
||||
deviceSectionItems.append(.init(title: VectorL10n.userSessionDetailsDeviceModel,
|
||||
value: model))
|
||||
}
|
||||
if let deviceOS = session.deviceOS {
|
||||
if let deviceOS = sessionInfo.deviceOS {
|
||||
deviceSectionItems.append(.init(title: VectorL10n.userSessionDetailsDeviceOs,
|
||||
value: deviceOS))
|
||||
}
|
||||
if let lastSeenIP = session.lastSeenIP {
|
||||
if let lastSeenIP = sessionInfo.lastSeenIP {
|
||||
deviceSectionItems.append(.init(title: VectorL10n.userSessionDetailsDeviceIpAddress,
|
||||
value: lastSeenIP))
|
||||
}
|
||||
if let lastSeenIPLocation = session.lastSeenIPLocation {
|
||||
if let lastSeenIPLocation = sessionInfo.lastSeenIPLocation {
|
||||
deviceSectionItems.append(.init(title: VectorL10n.userSessionDetailsDeviceIpLocation,
|
||||
value: lastSeenIPLocation))
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ class UserSessionOverviewViewModelTests: XCTestCase {
|
|||
sut.process(viewAction: .togglePushNotifications)
|
||||
XCTAssertEqual(sut.state.isPusherEnabled, true)
|
||||
}
|
||||
|
||||
|
||||
private func createUserSessionInfo() -> UserSessionInfo {
|
||||
UserSessionInfo(id: "session",
|
||||
name: "iOS",
|
||||
|
|
Loading…
Reference in a new issue