Renamed session to sessionInfo

This commit is contained in:
Aleksandrs Proskurins 2022-10-04 15:34:31 +03:00
parent 3deee90005
commit 34aa035ead
9 changed files with 42 additions and 42 deletions

View file

@ -27,7 +27,6 @@ class InactiveUserSessionLastActivityFormatter {
static func lastActivityDateString(from lastActivityTimestamp: TimeInterval) -> String {
let date = Date(timeIntervalSince1970: lastActivityTimestamp)
return InactiveUserSessionLastActivityFormatter.dateFormatter.string(from: date)
}
}

View file

@ -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)
}

View file

@ -44,9 +44,3 @@ enum UserOtherSessionsSection: Hashable, Identifiable {
enum UserOtherSessionsViewAction {
case userOtherSessionSelected(sessionId: String)
}
enum OtherUserSessionsFilter {
case all
case inactive
case unverified
}

View file

@ -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]

View file

@ -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)

View file

@ -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))
)
}

View file

@ -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)
}

View file

@ -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))
}

View file

@ -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",