feat: Better encryption / verification
This commit is contained in:
parent
81d86174c4
commit
274ca76db8
8 changed files with 140 additions and 48 deletions
|
|
@ -12,6 +12,8 @@ import 'package:flutter_gen/gen_l10n/l10n.dart';
|
|||
import '../utils/presence_extension.dart';
|
||||
import 'dialogs/simple_dialogs.dart';
|
||||
import 'matrix.dart';
|
||||
import '../views/key_verification.dart';
|
||||
import '../utils/app_route.dart';
|
||||
|
||||
class UserBottomSheet extends StatelessWidget {
|
||||
final User user;
|
||||
|
|
@ -72,9 +74,22 @@ class UserBottomSheet extends StatelessWidget {
|
|||
}
|
||||
}
|
||||
|
||||
void _verifyAction(BuildContext context) async {
|
||||
final client = Matrix.of(context).client;
|
||||
final req = await client.userDeviceKeys[user.id].startVerification();
|
||||
await Navigator.of(context).push(
|
||||
AppRoute.defaultRoute(
|
||||
context,
|
||||
KeyVerificationView(request: req),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final presence = Matrix.of(context).client.presences[user.id];
|
||||
final client = Matrix.of(context).client;
|
||||
final presence = client.presences[user.id];
|
||||
final verificationStatus = client.userDeviceKeys[user.id]?.verified;
|
||||
var items = <PopupMenuEntry<String>>[];
|
||||
|
||||
if (onMention != null) {
|
||||
|
|
@ -145,6 +160,21 @@ class UserBottomSheet extends StatelessWidget {
|
|||
),
|
||||
title: Text(user.calcDisplayname()),
|
||||
actions: [
|
||||
if (verificationStatus != null)
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.lock,
|
||||
color: {
|
||||
UserVerifiedStatus.unknownDevice: Colors.red,
|
||||
UserVerifiedStatus.verified: Colors.green,
|
||||
}[verificationStatus] ??
|
||||
Colors.orange,
|
||||
),
|
||||
onTap: () =>
|
||||
verificationStatus == UserVerifiedStatus.unknown
|
||||
? _verifyAction(context)
|
||||
: null,
|
||||
),
|
||||
if (user.id != Matrix.of(context).client.userID)
|
||||
PopupMenuButton(
|
||||
itemBuilder: (_) => items,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue