Include browser version in parsed user agent (PSG-761) (#6788)

* Update UserSessionInfo structure to include client version

* Add string for browser

* Update user agent parser to parse browser version too

* Add browser row into the session details

* Add changelog

* Fix tests

* Run Swift format
This commit is contained in:
ismailgulek
2022-10-04 10:49:26 +03:00
committed by GitHub
parent dcde9424c8
commit 8903fde833
16 changed files with 109 additions and 59 deletions
@@ -53,7 +53,8 @@ enum MockUserSessionDetailsScreenState: MockScreenState, CaseIterable {
deviceModel: nil,
deviceOS: "iOS 15.5",
lastSeenIPLocation: nil,
deviceName: "My iPhone",
clientName: "Element",
clientVersion: "1.0.0",
isActive: true,
isCurrent: true)
case .sessionSectionOnly:
@@ -69,7 +70,8 @@ enum MockUserSessionDetailsScreenState: MockScreenState, CaseIterable {
deviceModel: nil,
deviceOS: "Android 4.0",
lastSeenIPLocation: nil,
deviceName: "My Phone",
clientName: "Element",
clientVersion: "1.0.0",
isActive: true,
isCurrent: false)
}
@@ -113,7 +113,8 @@ class UserSessionDetailsViewModelTests: XCTestCase {
deviceModel: String? = nil,
deviceOS: String? = nil,
lastSeenIPLocation: String? = nil,
deviceName: String? = nil,
clientName: String? = nil,
clientVersion: String? = nil,
isActive: Bool = true,
isCurrent: Bool = true) -> UserSessionInfo {
UserSessionInfo(id: id,
@@ -128,7 +129,8 @@ class UserSessionDetailsViewModelTests: XCTestCase {
deviceModel: deviceModel,
deviceOS: deviceOS,
lastSeenIPLocation: lastSeenIPLocation,
deviceName: deviceName,
clientName: clientName,
clientVersion: clientVersion,
isActive: isActive,
isCurrent: isCurrent)
}
@@ -93,6 +93,12 @@ class UserSessionDetailsViewModel: UserSessionDetailsViewModelType, UserSessionD
deviceSectionItems.append(.init(title: VectorL10n.userSessionDetailsDeviceModel,
value: model))
}
if session.deviceType == .web,
let clientName = session.clientName,
let clientVersion = session.clientVersion {
deviceSectionItems.append(.init(title: VectorL10n.userSessionDetailsDeviceBrowser,
value: "\(clientName) \(clientVersion)"))
}
if let deviceOS = session.deviceOS {
deviceSectionItems.append(.init(title: VectorL10n.userSessionDetailsDeviceOs,
value: deviceOS))