mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 21:32:34 +00:00
Improve detection of completion for Link new device flow
The SDK emits a Done progress once complete, but our listener might have been deallocated before receiving the done.
This commit is contained in:
+1
-4
@@ -145,10 +145,7 @@ class LinkNewDeviceFlowNode(
|
|||||||
LinkMobileStep.Starting -> {
|
LinkMobileStep.Starting -> {
|
||||||
// This step is not received at the moment, so do nothing
|
// This step is not received at the moment, so do nothing
|
||||||
}
|
}
|
||||||
LinkMobileStep.SyncingSecrets -> {
|
LinkMobileStep.SyncingSecrets -> Unit
|
||||||
// LinkMobileStep.Done is not received at the moment, so consider that the flow is done here
|
|
||||||
callback.onDone()
|
|
||||||
}
|
|
||||||
is LinkMobileStep.WaitingForAuth -> {
|
is LinkMobileStep.WaitingForAuth -> {
|
||||||
navigateToBrowser(linkMobileStep.verificationUri)
|
navigateToBrowser(linkMobileStep.verificationUri)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -54,6 +54,8 @@ class RustLinkDesktopHandler(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
// We emit Done in case the progress listener was deallocated before scan() sent the Done
|
||||||
|
_linkDesktopStep.emit(LinkDesktopStep.Done)
|
||||||
} catch (e: QrCodeDecodeException) {
|
} catch (e: QrCodeDecodeException) {
|
||||||
Timber.tag(tag.value).w(e, "Invalid QR code scanned")
|
Timber.tag(tag.value).w(e, "Invalid QR code scanned")
|
||||||
_linkDesktopStep.emit(
|
_linkDesktopStep.emit(
|
||||||
|
|||||||
+2
@@ -49,6 +49,8 @@ class RustLinkMobileHandler(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
// We emit Done in case the progress listener was deallocated before generate() sent the Done
|
||||||
|
_linkMobileStep.emit(LinkMobileStep.Done)
|
||||||
} catch (e: HumanQrGrantLoginException) {
|
} catch (e: HumanQrGrantLoginException) {
|
||||||
Timber.tag(tag.value).w(e, "Error during QR login grant")
|
Timber.tag(tag.value).w(e, "Error during QR login grant")
|
||||||
_linkMobileStep.emit(LinkMobileStep.Error(e.map()))
|
_linkMobileStep.emit(LinkMobileStep.Error(e.map()))
|
||||||
|
|||||||
Reference in New Issue
Block a user