import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import 'package:vrouter/vrouter.dart'; import '../../widgets/matrix.dart'; class EncryptionButton extends StatelessWidget { final Room room; const EncryptionButton(this.room, {Key? key}) : super(key: key); @override Widget build(BuildContext context) { return StreamBuilder( stream: Matrix.of(context) .client .onSync .stream .where((s) => s.deviceLists != null), builder: (context, snapshot) { return FutureBuilder( future: room.calcEncryptionHealthState(), builder: (BuildContext context, snapshot) => IconButton( tooltip: room.encrypted ? L10n.of(context)!.encrypted : L10n.of(context)!.encryptionNotEnabled, icon: Icon( room.encrypted ? Icons.lock_outlined : Icons.lock_open_outlined, size: 20, color: room.joinRules != JoinRules.public && !room.encrypted ? Colors.red : room.joinRules != JoinRules.public && snapshot.data == EncryptionHealthState.unverifiedDevices ? Colors.orange : null), onPressed: () => VRouter.of(context) .toSegments(['rooms', room.id, 'encryption']), )); }); } }