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