From 790b9cbc13b8614ca58ae16668ccfcc7d9238df0 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Wed, 3 Nov 2021 02:28:01 +0100 Subject: [PATCH] require a flag to enable account setup during login as it blocks login from progressing, any sdk usage should enable to indicate they are listening for the AccountSetup status. --- src/domain/login/LoginViewModel.js | 2 +- src/matrix/SessionContainer.js | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/domain/login/LoginViewModel.js b/src/domain/login/LoginViewModel.js index 9cdf9290..6314f347 100644 --- a/src/domain/login/LoginViewModel.js +++ b/src/domain/login/LoginViewModel.js @@ -107,7 +107,7 @@ export class LoginViewModel extends ViewModel { async attemptLogin(loginMethod) { this._setBusy(true); - this._sessionContainer.startWithLogin(loginMethod); + this._sessionContainer.startWithLogin(loginMethod, {inspectAccountSetup: true}); const loadStatus = this._sessionContainer.loadStatus; const handle = loadStatus.waitFor(status => status !== LoadStatus.Login); await handle.promise; diff --git a/src/matrix/SessionContainer.js b/src/matrix/SessionContainer.js index 10e5acfc..8e3d147e 100644 --- a/src/matrix/SessionContainer.js +++ b/src/matrix/SessionContainer.js @@ -131,7 +131,7 @@ export class SessionContainer { }); } - async startWithLogin(loginMethod) { + async startWithLogin(loginMethod, {inspectAccountSetup} = {}) { const currentStatus = this._status.get(); if (currentStatus !== LoadStatus.LoginFailed && currentStatus !== LoadStatus.NotLoading && @@ -176,9 +176,12 @@ export class SessionContainer { } return; } - const dehydratedDevice = await this._inspectAccountAfterLogin(sessionInfo, log); - if (dehydratedDevice) { - sessionInfo.deviceId = dehydratedDevice.deviceId; + let dehydratedDevice; + if (inspectAccountSetup) { + dehydratedDevice = await this._inspectAccountAfterLogin(sessionInfo, log); + if (dehydratedDevice) { + sessionInfo.deviceId = dehydratedDevice.deviceId; + } } await this._platform.sessionInfoStorage.add(sessionInfo); // loading the session can only lead to