fix: Enable E2EE by default in all start chat cases

This commit is contained in:
Krille Fear 2021-10-25 11:51:38 +02:00
parent 599c0acb7f
commit 5705ebdaab
3 changed files with 31 additions and 5 deletions

View File

@ -86,7 +86,19 @@ class UserBottomSheetController extends State<UserBottomSheet> {
case 'message':
final roomIdResult = await showFutureLoadingDialog(
context: context,
future: () => widget.user.startDirectChat(),
future: () async {
final roomId = await widget.user.startDirectChat();
final client = widget.user.room.client;
if (client.getRoomById(roomId) == null) {
await client.onSync.stream.firstWhere(
(sync) => sync.rooms?.join?.containsKey(roomId) ?? false);
}
final room = client.getRoomById(roomId);
if (client.encryptionEnabled && !room.encrypted) {
await client.getRoomById(roomId).enableEncryption();
}
return roomId;
},
);
if (roomIdResult.error != null) return;
VRouter.of(widget.outerContext)

View File

@ -247,9 +247,23 @@ class SearchView extends StatelessWidget {
onTap: () async {
final roomID = await showFutureLoadingDialog(
context: context,
future: () => Matrix.of(context)
.client
.startDirectChat(foundProfile.userId),
future: () async {
final client = Matrix.of(context).client;
final roomId = await client
.startDirectChat(foundProfile.userId);
if (client.getRoomById(roomId) == null) {
await client.onSync.stream.firstWhere((sync) =>
sync.rooms?.join?.containsKey(roomId) ??
false);
}
final room = client.getRoomById(roomId);
if (client.encryptionEnabled && !room.encrypted) {
await client
.getRoomById(roomId)
.enableEncryption();
}
return roomId;
},
);
if (roomID.error == null) {
VRouter.of(context)

View File

@ -748,7 +748,7 @@ packages:
name: matrix
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.1"
version: "0.6.2"
matrix_api_lite:
dependency: transitive
description: