fix: Wait for first sync on bootstrap

This commit is contained in:
Christian Pauly 2021-08-01 16:05:32 +02:00
parent a6ab9a2ab0
commit d6728783a2

View File

@ -156,9 +156,14 @@ class ChatListController extends State<ChatList> {
@override @override
void initState() { void initState() {
_initReceiveSharingIntent(); _initReceiveSharingIntent();
WidgetsBinding.instance.addPostFrameCallback((_) async { WidgetsBinding.instance.addPostFrameCallback(
(_) => waitForFirstSync().then((_) => checkBootstrap()),
);
super.initState();
}
void checkBootstrap() async {
if (!Matrix.of(context).client.encryptionEnabled) return; if (!Matrix.of(context).client.encryptionEnabled) return;
await waitForFirstSync();
if ((Matrix.of(context).client.database as FlutterMatrixHiveStore) if ((Matrix.of(context).client.database as FlutterMatrixHiveStore)
.get(SettingKeys.dontAskForBootstrapKey) == .get(SettingKeys.dontAskForBootstrapKey) ==
true) { true) {
@ -166,16 +171,12 @@ class ChatListController extends State<ChatList> {
} }
final crossSigning = await crossSigningCachedFuture; final crossSigning = await crossSigningCachedFuture;
final needsBootstrap = final needsBootstrap =
Matrix.of(context).client.encryption?.crossSigning?.enabled == Matrix.of(context).client.encryption?.crossSigning?.enabled == false ||
false ||
crossSigning == false; crossSigning == false;
final isUnknownSession = Matrix.of(context).client.isUnknownSession; final isUnknownSession = Matrix.of(context).client.isUnknownSession;
if (needsBootstrap || isUnknownSession) { if (needsBootstrap || isUnknownSession) {
firstRunBootstrapAction(); firstRunBootstrapAction();
} }
});
super.initState();
} }
@override @override