Add a service and flow coordinator for the LinkNewDevice feature. (#4859)

* Add a LinkNewDeviceService that exposes the SDK's grant QR code login methods.

* Add a flow coordinator for linking a new device.

Changes the presentation too.
This commit is contained in:
Doug
2025-12-15 14:44:26 +00:00
committed by GitHub
parent 27ca265991
commit 93dfc84a57
38 changed files with 536 additions and 73 deletions
@@ -45,6 +45,7 @@ enum A11yIdentifiers {
static let roomPollsHistoryScreen = RoomPollsHistoryScreen()
static let manageRoomMemberSheet = ManageRoomMemberSheet()
static let spaceListScreen = SpaceListScreen()
static let linkNewDeviceScreen = LinkNewDeviceScreen()
struct AlertInfo {
let primaryButton = "alert_info-primary_button"
@@ -314,4 +315,10 @@ enum A11yIdentifiers {
"\(roomNamePrefix):\(name)"
}
}
struct LinkNewDeviceScreen {
let cancel = "link_new_device_screen-cancel"
let mobileDevice = "link_new_device_screen-mobile_device"
let desktopComputer = "link_new_device_screen-desktop_computer"
}
}
+8
View File
@@ -29,6 +29,14 @@ extension SDKListener: QrLoginProgressListener where T == QrLoginProgress {
func onUpdate(state: QrLoginProgress) { onUpdateClosure(state) }
}
extension SDKListener: GrantQrLoginProgressListener where T == GrantQrLoginProgress {
func onUpdate(state: GrantQrLoginProgress) { onUpdateClosure(state) }
}
extension SDKListener: GrantGeneratedQrLoginProgressListener where T == GrantGeneratedQrLoginProgress {
func onUpdate(state: GrantGeneratedQrLoginProgress) { onUpdateClosure(state) }
}
// MARK: ClientProxy
extension SDKListener: MediaPreviewConfigListener where T == MediaPreviewConfig? {