Merge remote-tracking branch 'origin/develop' into dbkr/support_no_ssss
commit
a82253ec96
|
@ -45,8 +45,17 @@ export class SetupEncryptionStore extends EventEmitter {
|
||||||
// Descriptor of the key that the secrets we want are encrypted with
|
// Descriptor of the key that the secrets we want are encrypted with
|
||||||
this.keyInfo = null;
|
this.keyInfo = null;
|
||||||
|
|
||||||
MatrixClientPeg.get().on("crypto.verification.request", this.onVerificationRequest);
|
const cli = MatrixClientPeg.get();
|
||||||
MatrixClientPeg.get().on('userTrustStatusChanged', this._onUserTrustStatusChanged);
|
cli.on("crypto.verification.request", this.onVerificationRequest);
|
||||||
|
cli.on('userTrustStatusChanged', this._onUserTrustStatusChanged);
|
||||||
|
|
||||||
|
const requestsInProgress = cli.getVerificationRequestsToDeviceInProgress(cli.getUserId());
|
||||||
|
if (requestsInProgress.length) {
|
||||||
|
// If there are multiple, we take the most recent. Equally if the user sends another request from
|
||||||
|
// another device after this screen has been shown, we'll switch to the new one, so this
|
||||||
|
// generally doesn't support multiple requests.
|
||||||
|
this._setActiveVerificationRequest(requestsInProgress[requestsInProgress.length - 1]);
|
||||||
|
}
|
||||||
|
|
||||||
this.fetchKeyInfo();
|
this.fetchKeyInfo();
|
||||||
}
|
}
|
||||||
|
@ -137,16 +146,8 @@ export class SetupEncryptionStore extends EventEmitter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onVerificationRequest = async (request) => {
|
onVerificationRequest = (request) => {
|
||||||
if (request.otherUserId !== MatrixClientPeg.get().getUserId()) return;
|
this._setActiveVerificationRequest(request);
|
||||||
|
|
||||||
if (this.verificationRequest) {
|
|
||||||
this.verificationRequest.off("change", this.onVerificationRequestChange);
|
|
||||||
}
|
|
||||||
this.verificationRequest = request;
|
|
||||||
await request.accept();
|
|
||||||
request.on("change", this.onVerificationRequestChange);
|
|
||||||
this.emit("update");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onVerificationRequestChange = async () => {
|
onVerificationRequestChange = async () => {
|
||||||
|
@ -187,4 +188,16 @@ export class SetupEncryptionStore extends EventEmitter {
|
||||||
// async - ask other clients for keys, if necessary
|
// async - ask other clients for keys, if necessary
|
||||||
MatrixClientPeg.get()._crypto.cancelAndResendAllOutgoingKeyRequests();
|
MatrixClientPeg.get()._crypto.cancelAndResendAllOutgoingKeyRequests();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async _setActiveVerificationRequest(request) {
|
||||||
|
if (request.otherUserId !== MatrixClientPeg.get().getUserId()) return;
|
||||||
|
|
||||||
|
if (this.verificationRequest) {
|
||||||
|
this.verificationRequest.off("change", this.onVerificationRequestChange);
|
||||||
|
}
|
||||||
|
this.verificationRequest = request;
|
||||||
|
await request.accept();
|
||||||
|
request.on("change", this.onVerificationRequestChange);
|
||||||
|
this.emit("update");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue