浏览代码

OMEMO fixes for completely new user

Fix bugs related to there not being a server-side device list (not even an empty one) for a new user.
JC Brand 3 年之前
父节点
当前提交
731e98b07c
共有 3 个文件被更改,包括 3 次插入3 次删除
  1. 1 1
      src/plugins/omemo/api.js
  2. 1 1
      src/plugins/omemo/devicelist.js
  3. 1 1
      src/plugins/omemo/utils.js

+ 1 - 1
src/plugins/omemo/api.js

@@ -36,7 +36,7 @@ export default {
             async get (jid, create=false) {
                 const list = _converse.devicelists.get(jid) ||
                     (create ? _converse.devicelists.create({ jid }) : null);
-                await list.initialized;
+                await list?.initialized;
                 return list;
             }
         },

+ 1 - 1
src/plugins/omemo/devicelist.js

@@ -30,7 +30,7 @@ const DeviceList = Model.extend({
 
     async onDevicesFound (collection) {
         if (collection.length === 0) {
-            let ids;
+            let ids = [];
             try {
                 ids = await this.fetchDevicesFromServer();
             } catch (e) {

+ 1 - 1
src/plugins/omemo/utils.js

@@ -453,7 +453,7 @@ export async function getDevicesForContact (jid) {
 
 export async function generateDeviceID () {
     /* Generates a device ID, making sure that it's unique */
-    const devicelist = await api.omemo.devicelists.get(_converse.bare_jid);
+    const devicelist = await api.omemo.devicelists.get(_converse.bare_jid, true);
     const existing_ids = devicelist.devices.pluck('id');
     let device_id = libsignal.KeyHelper.generateRegistrationId();