Просмотр исходного кода

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 лет назад
Родитель
Сommit
0ed39dad63
2 измененных файлов: 21 добавлений и 19 удалений
  1. 19
    18
      conference.js
  2. 2
    1
      modules/API/API.js

+ 19
- 18
conference.js Просмотреть файл

@@ -348,23 +348,6 @@ function createLocalTracks (options, checkForPermissionPrompt) {
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 351
 class ConferenceConnector {
369 352
     constructor(resolve, reject, invite) {
370 353
         this._resolve = resolve;
@@ -1505,7 +1488,8 @@ export default {
1505 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 1494
         APP.UI.addListener(UIEvents.START_MUTED_CHANGED,
1511 1495
             (startAudioMuted, startVideoMuted) => {
@@ -1978,5 +1962,22 @@ export default {
1978 1962
      */
1979 1963
     isInLastN (participantId) {
1980 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,7 +45,8 @@ let enabled = false;
45 45
 
46 46
 function initCommands() {
47 47
     commands = {
48
-        "display-name": APP.UI.inputDisplayNameHandler,
48
+        "display-name":
49
+            APP.conference.changeLocalDisplayName.bind(APP.conference),
49 50
         "toggle-audio": APP.conference.toggleAudioMuted.bind(APP.conference),
50 51
         "toggle-video": APP.conference.toggleVideoMuted.bind(APP.conference),
51 52
         "toggle-film-strip": APP.UI.toggleFilmStrip,

Загрузка…
Отмена
Сохранить