feat: Display state event when user changed their keys

This commit is contained in:
Christian Kußowski 2026-02-14 08:31:57 +01:00
parent 55a886c68a
commit 50765afdc5
No known key found for this signature in database
GPG key ID: E067ECD60F1A0652
6 changed files with 52 additions and 6 deletions

View file

@ -3134,5 +3134,24 @@
"removeAdminRights": "Remove admin rights",
"powerLevel": "Power level",
"setPowerLevelDescription": "Power levels define what a member is allowed to do in this room and usually range between 0 and 100.",
"owner": "Owner"
"owner": "Owner",
"userHasChangedTheirKeys": "{user} has changed their keys.",
"@userHasChangedTheirKeys": {
"type": "String",
"placeholders": {
"user": {
"type": "String"
}
}
},
"usersHaveChangedTheirKeys": "{users} have changed their keys.",
"@usersHaveChangedTheirKeys": {
"type": "String",
"placeholders": {
"users": {
"type": "String"
}
}
},
"check": "Check"
}

View file

@ -1,6 +1,7 @@
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/setting_keys.dart';
@ -51,6 +52,20 @@ class StateMessage extends StatelessWidget {
MatrixLocals(L10n.of(context)),
),
),
if (event.type == EventTypes.TofuNotification) ...[
const TextSpan(text: ' '),
TextSpan(
text: L10n.of(context).check,
style: TextStyle(
color: theme.colorScheme.primary,
decoration: TextDecoration.underline,
),
recognizer: TapGestureRecognizer()
..onTap = () => context.go(
'/rooms/${event.room.id}/encryption',
),
),
],
if (onExpand != null) ...[
const TextSpan(text: '\n'),
TextSpan(

View file

@ -111,6 +111,9 @@ abstract class ClientManager {
final shareKeysWith = AppSettings.shareKeysWith.value;
final enableSoftLogout = AppSettings.enableSoftLogout.value;
EventLocalizations.localizationsMap['sdk.matrix.dart.tofu_event'] =
(event, _, body) => body;
return Client(
clientName,
httpClient: CustomHttpClient.createHTTPClient(),

View file

@ -371,4 +371,9 @@ class MatrixLocals extends MatrixLocalizations {
@override
String get pollHasBeenEnded => l10n.pollHasBeenEnded;
@override
String usersHaveChangedTheirKeys(List<String> users) => users.length == 1
? l10n.userHasChangedTheirKeys(users.single)
: l10n.usersHaveChangedTheirKeys(users.join(', '));
}

View file

@ -1127,10 +1127,11 @@ packages:
matrix:
dependency: "direct main"
description:
name: matrix
sha256: c0214ee99a73957d3c02d54a60afcf9acee577b0924749085d6fdf556e8eba42
url: "https://pub.dev"
source: hosted
path: "."
ref: "krille/tofu-for-master-signing-keys"
resolved-ref: "1889d3020e757cfacc1de28d81f62ab83119a6b5"
url: "https://github.com/famedly/matrix-dart-sdk.git"
source: git
version: "6.1.1"
meta:
dependency: transitive

View file

@ -53,7 +53,10 @@ dependencies:
just_audio: ^0.10.5
latlong2: ^0.9.1
linkify: ^5.0.0
matrix: ^6.1.1
matrix: #^6.1.1
git:
url: https://github.com/famedly/matrix-dart-sdk.git
ref: krille/tofu-for-master-signing-keys
mime: ^2.0.0
native_imaging: ^0.4.0
opus_caf_converter_dart: ^1.0.1