mirror of
https://gitlab.com/famedly/fluffychat.git
synced 2024-12-24 06:22:34 +01:00
fix: Bootstrap loop
This commit is contained in:
parent
74f0469b83
commit
762139d43d
@ -77,7 +77,6 @@ class ChatListController extends State<ChatList> {
|
||||
Matrix.of(context).client.rooms.where((r) => r.isSpace).toList();
|
||||
|
||||
final selectedRoomIds = <String>{};
|
||||
Future<bool> crossSigningCachedFuture;
|
||||
bool crossSigningCached;
|
||||
bool hideChatBackupBanner = false;
|
||||
|
||||
@ -173,7 +172,9 @@ class ChatListController extends State<ChatList> {
|
||||
|
||||
void checkBootstrap() async {
|
||||
if (!Matrix.of(context).client.encryptionEnabled) return;
|
||||
final crossSigning = await crossSigningCachedFuture;
|
||||
final crossSigning =
|
||||
await Matrix.of(context).client.encryption?.crossSigning?.isCached() ??
|
||||
false;
|
||||
final needsBootstrap =
|
||||
Matrix.of(context).client.encryption?.crossSigning?.enabled == false ||
|
||||
crossSigning == false;
|
||||
@ -501,15 +502,6 @@ class ChatListController extends State<ChatList> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Matrix.of(context).navigatorContext = context;
|
||||
crossSigningCachedFuture ??= Matrix.of(context)
|
||||
.client
|
||||
.encryption
|
||||
?.crossSigning
|
||||
?.isCached()
|
||||
?.then((c) {
|
||||
if (mounted) setState(() => crossSigningCached = c);
|
||||
return c;
|
||||
});
|
||||
return ChatListView(this);
|
||||
}
|
||||
}
|
||||
|
@ -59,11 +59,34 @@ class SettingsSecurityView extends StatelessWidget {
|
||||
trailing: const Icon(Icons.vpn_key_outlined),
|
||||
),
|
||||
ListTile(
|
||||
title: Text(L10n.of(context).cachedKeys),
|
||||
trailing: const Icon(Icons.wb_cloudy_outlined),
|
||||
subtitle: Text(
|
||||
'${Matrix.of(context).client.encryption.keyManager.enabled ? L10n.of(context).onlineKeyBackupEnabled : L10n.of(context).onlineKeyBackupDisabled}\n${Matrix.of(context).client.encryption.crossSigning.enabled ? L10n.of(context).crossSigningEnabled : L10n.of(context).crossSigningDisabled}'),
|
||||
onTap: controller.bootstrapSettingsAction,
|
||||
title: Text(L10n.of(context).crossSigningEnabled),
|
||||
trailing:
|
||||
Matrix.of(context).client.encryption.crossSigning.enabled
|
||||
? const Icon(Icons.check, color: Colors.green)
|
||||
: const Icon(Icons.error, color: Colors.red),
|
||||
),
|
||||
ListTile(
|
||||
title: Text(L10n.of(context).onlineKeyBackupEnabled),
|
||||
trailing:
|
||||
Matrix.of(context).client.encryption.keyManager.enabled
|
||||
? const Icon(Icons.check, color: Colors.green)
|
||||
: const Icon(Icons.error, color: Colors.red),
|
||||
),
|
||||
ListTile(
|
||||
title: const Text('Session verified'),
|
||||
trailing: !Matrix.of(context).client.isUnknownSession
|
||||
? const Icon(Icons.check, color: Colors.green)
|
||||
: const Icon(Icons.error, color: Colors.red),
|
||||
),
|
||||
FutureBuilder(
|
||||
future:
|
||||
Matrix.of(context).client.encryption.keyManager.isCached(),
|
||||
builder: (context, snapshot) => ListTile(
|
||||
title: Text(L10n.of(context).keysCached),
|
||||
trailing: snapshot.data == true
|
||||
? const Icon(Icons.check, color: Colors.green)
|
||||
: const Icon(Icons.error, color: Colors.red),
|
||||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
|
Loading…
Reference in New Issue
Block a user