Fix DM rooms are not being encrypted (#2286)
authorAjay Bura <32841439+ajbura@users.noreply.github.com>
Mon, 24 Mar 2025 09:08:11 +0000 (20:08 +1100)
committerGitHub <noreply@github.com>
Mon, 24 Mar 2025 09:08:11 +0000 (20:08 +1100)
* force check user device before creating dm

* fix getUserDeviceInfo doesn't exist on MatrixClient

src/util/matrixUtil.js

index 0389177eb312ec7e569b3ba2314b500d142035d8..19688a2b4feb5313a4ca828354638719a50fde44 100644 (file)
@@ -102,8 +102,9 @@ export function getIdServer(userId) {
 
 export async function hasDevices(mx, userId) {
   try {
-    const usersDeviceMap = await mx.getUserDeviceInfo([userId, mx.getUserId()]);
-    return Object.values(usersDeviceMap)
+    const usersDeviceMap = await mx.getCrypto()?.getUserDeviceInfo([userId, mx.getUserId()], true);
+
+    return Array.from(usersDeviceMap.values())
       .every((deviceIdToDevices) => deviceIdToDevices.size > 0);
   } catch (e) {
     console.error("Error determining if it's possible to encrypt to all users: ", e);