fix: Better wait for secrets after verification bootstrap

This commit is contained in:
Christian Kußowski 2025-12-23 15:36:36 +01:00
parent 5c5511b5ca
commit 040c18d80f
No known key found for this signature in database
GPG key ID: E067ECD60F1A0652

View file

@ -1,5 +1,3 @@
import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart';
@ -444,26 +442,25 @@ class BootstrapDialogState extends State<BootstrapDialog> {
if (success != true) return; if (success != true) return;
if (!mounted) return; if (!mounted) return;
final waitForSecret = Completer(); final result = await showFutureLoadingDialog(
final secretsSub = client context: context,
future: () async {
final allCached =
await client.encryption!.keyManager
.isCached() &&
await client.encryption!.crossSigning
.isCached();
if (!allCached) {
await client
.encryption! .encryption!
.ssss .ssss
.onSecretStored .onSecretStored
.stream .stream
.listen((event) async { .first;
if (await client.encryption!.keyManager
.isCached() &&
await client.encryption!.crossSigning
.isCached()) {
waitForSecret.complete();
} }
}); return;
},
final result = await showFutureLoadingDialog(
context: context,
future: () => waitForSecret.future,
); );
await secretsSub.cancel();
if (!mounted) return; if (!mounted) return;
if (!result.isError) _goBackAction(true); if (!result.isError) _goBackAction(true);
}, },