fix: Do not call matrix.of inside of matrix.dart

This commit is contained in:
Christian Pauly 2021-09-18 12:18:16 +02:00
parent a32ce35347
commit 73c7ef9840

View File

@ -79,14 +79,13 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
} }
Client createLoginClient() { Client createLoginClient() {
final multiAccount = Matrix.of(context).client.isLogged(); final multiAccount = client.isLogged();
final client = multiAccount final newClient = multiAccount
? ClientManager.createClient( ? ClientManager.createClient(client.generateUniqueTransactionId())
Matrix.of(context).client.generateUniqueTransactionId()) : client;
: Matrix.of(context).client;
if (multiAccount) { if (multiAccount) {
// Add to client list // Add to client list
client.onLoginStateChanged.stream newClient.onLoginStateChanged.stream
.where((l) => l == LoginState.loggedIn) .where((l) => l == LoginState.loggedIn)
.first .first
.then((_) { .then((_) {
@ -95,7 +94,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
_registerSubs(client.clientName); _registerSubs(client.clientName);
}); });
} }
return client; return newClient;
} }
Client getClientByName(String name) => widget.clients Client getClientByName(String name) => widget.clients
@ -204,14 +203,12 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
return uiaRequest return uiaRequest
.cancel(Exception(L10n.of(context).serverRequiresEmail)); .cancel(Exception(L10n.of(context).serverRequiresEmail));
} }
final clientSecret = final clientSecret = client.generateUniqueTransactionId();
Matrix.of(context).client.generateUniqueTransactionId(); final currentThreepidCreds = await client.requestTokenToRegisterEmail(
final currentThreepidCreds = clientSecret,
await Matrix.of(context).client.requestTokenToRegisterEmail( emailInput.single,
clientSecret, 0,
emailInput.single, );
0,
);
final auth = AuthenticationThreePidCreds( final auth = AuthenticationThreePidCreds(
session: uiaRequest.session, session: uiaRequest.session,
type: AuthenticationTypes.emailIdentity, type: AuthenticationTypes.emailIdentity,