浏览代码

fix(iframe_api): Display name command race condition

If executeCommand('displayName') is executed before Jitsi Meet
is fully initialized some listeners were not added and the
display name was not changed.
master
hristoterezov 8 年前
父节点
当前提交
0ed39dad63
共有 2 个文件被更改,包括 21 次插入19 次删除
  1. 19
    18
      conference.js
  2. 2
    1
      modules/API/API.js

+ 19
- 18
conference.js 查看文件

348
         });
348
         });
349
 }
349
 }
350
 
350
 
351
-/**
352
- * Changes the display name for the local user
353
- * @param nickname {string} the new display name
354
- */
355
-function changeLocalDisplayName(nickname = '') {
356
-    const formattedNickname
357
-        = nickname.trim().substr(0, MAX_DISPLAY_NAME_LENGTH);
358
-
359
-    if (formattedNickname === APP.settings.getDisplayName()) {
360
-        return;
361
-    }
362
-
363
-    APP.settings.setDisplayName(formattedNickname);
364
-    room.setDisplayName(formattedNickname);
365
-    APP.UI.changeDisplayName(APP.conference.getMyUserId(), formattedNickname);
366
-}
367
-
368
 class ConferenceConnector {
351
 class ConferenceConnector {
369
     constructor(resolve, reject, invite) {
352
     constructor(resolve, reject, invite) {
370
         this._resolve = resolve;
353
         this._resolve = resolve;
1505
                 APP.UI.setUserAvatarID(from, data.value);
1488
                 APP.UI.setUserAvatarID(from, data.value);
1506
             });
1489
             });
1507
 
1490
 
1508
-        APP.UI.addListener(UIEvents.NICKNAME_CHANGED, changeLocalDisplayName);
1491
+        APP.UI.addListener(UIEvents.NICKNAME_CHANGED,
1492
+            this.changeLocalDisplayName.bind(this));
1509
 
1493
 
1510
         APP.UI.addListener(UIEvents.START_MUTED_CHANGED,
1494
         APP.UI.addListener(UIEvents.START_MUTED_CHANGED,
1511
             (startAudioMuted, startVideoMuted) => {
1495
             (startAudioMuted, startVideoMuted) => {
1978
      */
1962
      */
1979
     isInLastN (participantId) {
1963
     isInLastN (participantId) {
1980
         return room.isInLastN(participantId);
1964
         return room.isInLastN(participantId);
1965
+    },
1966
+    /**
1967
+     * Changes the display name for the local user
1968
+     * @param nickname {string} the new display name
1969
+     */
1970
+    changeLocalDisplayName(nickname = '') {
1971
+        const formattedNickname
1972
+            = nickname.trim().substr(0, MAX_DISPLAY_NAME_LENGTH);
1973
+
1974
+        if (formattedNickname === APP.settings.getDisplayName()) {
1975
+            return;
1976
+        }
1977
+
1978
+        APP.settings.setDisplayName(formattedNickname);
1979
+        room.setDisplayName(formattedNickname);
1980
+        APP.UI.changeDisplayName(this.getMyUserId(),
1981
+            formattedNickname);
1981
     }
1982
     }
1982
 };
1983
 };

+ 2
- 1
modules/API/API.js 查看文件

45
 
45
 
46
 function initCommands() {
46
 function initCommands() {
47
     commands = {
47
     commands = {
48
-        "display-name": APP.UI.inputDisplayNameHandler,
48
+        "display-name":
49
+            APP.conference.changeLocalDisplayName.bind(APP.conference),
49
         "toggle-audio": APP.conference.toggleAudioMuted.bind(APP.conference),
50
         "toggle-audio": APP.conference.toggleAudioMuted.bind(APP.conference),
50
         "toggle-video": APP.conference.toggleVideoMuted.bind(APP.conference),
51
         "toggle-video": APP.conference.toggleVideoMuted.bind(APP.conference),
51
         "toggle-film-strip": APP.UI.toggleFilmStrip,
52
         "toggle-film-strip": APP.UI.toggleFilmStrip,

正在加载...
取消
保存