Make the app version and the device ID copyable in the Settings screen. (#1389)

This commit is contained in:
Doug 2023-07-25 18:31:42 +01:00 committed by GitHub
parent 9f4479b57a
commit 7a9edc5efa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 14 additions and 8 deletions

View File

@ -165,9 +165,12 @@ struct SettingsScreen: View {
versionText
.frame(maxWidth: .infinity)
context.viewState.deviceID.map(Text.init)
if let deviceID = context.viewState.deviceID {
Text(deviceID)
}
}
.compoundFormSectionFooter()
.textSelection(.enabled)
.padding(.top, 24)
}
.compoundFormSection()
@ -201,7 +204,8 @@ private extension TimelineStyle {
struct SettingsScreen_Previews: PreviewProvider {
static let viewModel = {
let userSession = MockUserSession(clientProxy: MockClientProxy(userID: "@userid:example.com"),
let userSession = MockUserSession(clientProxy: MockClientProxy(userID: "@userid:example.com",
deviceID: "AAAAAAAAAAA"),
mediaProvider: MockMediaProvider())
ServiceLocator.shared.settings.notificationSettingsEnabled = true
return SettingsScreenViewModel(userSession: userSession,

View File

@ -87,7 +87,7 @@ class ClientProxy: ClientProxyProtocol {
}
}
var deviceId: String? {
var deviceID: String? {
do {
return try client.deviceId()
} catch {

View File

@ -68,7 +68,7 @@ protocol ClientProxyProtocol: AnyObject, MediaLoaderProtocol {
var userID: String { get }
var deviceId: String? { get }
var deviceID: String? { get }
var homeserver: String { get }

View File

@ -22,7 +22,7 @@ class MockClientProxy: ClientProxyProtocol {
let callbacks = PassthroughSubject<ClientProxyCallback, Never>()
let userID: String
let deviceId: String? = nil
let deviceID: String?
let homeserver = ""
let restorationToken: RestorationToken? = nil
@ -34,8 +34,9 @@ class MockClientProxy: ClientProxyProtocol {
var isSyncing: Bool { false }
internal init(userID: String, roomSummaryProvider: RoomSummaryProviderProtocol? = MockRoomSummaryProvider()) {
internal init(userID: String, deviceID: String? = nil, roomSummaryProvider: RoomSummaryProviderProtocol? = MockRoomSummaryProvider()) {
self.userID = userID
self.deviceID = deviceID
self.roomSummaryProvider = roomSummaryProvider
}

View File

@ -20,7 +20,7 @@ struct MockUserSession: UserSessionProtocol {
let callbacks = PassthroughSubject<UserSessionCallback, Never>()
let sessionVerificationController: SessionVerificationControllerProxyProtocol? = nil
var userID: String { clientProxy.userID }
var deviceID: String? { clientProxy.deviceId }
var deviceID: String? { clientProxy.deviceID }
var homeserver: String { clientProxy.homeserver }
let clientProxy: ClientProxyProtocol
let mediaProvider: MediaProviderProtocol

View File

@ -23,7 +23,7 @@ class UserSession: UserSessionProtocol {
private var authErrorCancellable: AnyCancellable?
var userID: String { clientProxy.userID }
var deviceID: String? { clientProxy.deviceId }
var deviceID: String? { clientProxy.deviceID }
var homeserver: String { clientProxy.homeserver }
let clientProxy: ClientProxyProtocol

1
changelog.d/623.change Normal file
View File

@ -0,0 +1 @@
Make the app version and the device ID copyable in the Settings screen.