Browse Source

Simplifies logic and renames a method.

Fixes tests.
tags/v0.0.2
damencho 7 years ago
parent
commit
2108f80e3d

+ 10
- 12
modules/statistics/SpeakerStats.js View File

@@ -20,9 +20,9 @@ class SpeakerStats {
20 20
         this._userId = userId;
21 21
         this.setDisplayName(displayName);
22 22
         this._isLocalStats = isLocalStats || false;
23
-        this.setIsDominantSpeaker(false);
23
+        this.setDominantSpeaker(false);
24 24
         this.totalDominantSpeakerTime = 0;
25
-        this._dominantSpeakerStart = null;
25
+        this._dominantSpeakerStart = 0;
26 26
         this._hasLeft = false;
27 27
     }
28 28
 
@@ -69,7 +69,7 @@ class SpeakerStats {
69 69
      * @returns {boolean}
70 70
      */
71 71
     isDominantSpeaker() {
72
-        return this._isDominantSpeaker;
72
+        return this._dominantSpeakerStart > 0;
73 73
     }
74 74
 
75 75
     /**
@@ -80,18 +80,16 @@ class SpeakerStats {
80 80
      * and will record any time accumulated since starting as dominant speaker.
81 81
      * @returns {void}
82 82
      */
83
-    setIsDominantSpeaker(isNowDominantSpeaker) {
84
-        if (!this._isDominantSpeaker && isNowDominantSpeaker) {
83
+    setDominantSpeaker(isNowDominantSpeaker) {
84
+        if (!this.isDominantSpeaker() && isNowDominantSpeaker) {
85 85
             this._dominantSpeakerStart = Date.now();
86
-        } else if (this._isDominantSpeaker && !isNowDominantSpeaker) {
86
+        } else if (this.isDominantSpeaker() && !isNowDominantSpeaker) {
87 87
             const now = Date.now();
88
-            const timeElapsed = now - (this._dominantSpeakerStart || 0);
88
+            const timeElapsed = now - this._dominantSpeakerStart;
89 89
 
90 90
             this.totalDominantSpeakerTime += timeElapsed;
91
-            this._dominantSpeakerStart = null;
91
+            this._dominantSpeakerStart = 0;
92 92
         }
93
-
94
-        this._isDominantSpeaker = isNowDominantSpeaker;
95 93
     }
96 94
 
97 95
     /**
@@ -102,7 +100,7 @@ class SpeakerStats {
102 100
     getTotalDominantSpeakerTime() {
103 101
         let total = this.totalDominantSpeakerTime;
104 102
 
105
-        if (this._isDominantSpeaker) {
103
+        if (this.isDominantSpeaker()) {
106 104
             total += Date.now() - this._dominantSpeakerStart;
107 105
         }
108 106
 
@@ -125,7 +123,7 @@ class SpeakerStats {
125 123
      */
126 124
     markAsHasLeft() {
127 125
         this._hasLeft = true;
128
-        this.setIsDominantSpeaker(false);
126
+        this.setDominantSpeaker(false);
129 127
     }
130 128
 }
131 129
 

+ 3
- 3
modules/statistics/SpeakerStats.spec.js View File

@@ -16,7 +16,7 @@ describe('SpeakerStats', () => {
16 16
         });
17 17
 
18 18
         it('removes the user as a dominant speaker', () => {
19
-            speakerStats.setIsDominantSpeaker(true);
19
+            speakerStats.setDominantSpeaker(true);
20 20
             speakerStats.markAsHasLeft();
21 21
             expect(speakerStats.isDominantSpeaker()).toBe(false);
22 22
         });
@@ -48,9 +48,9 @@ describe('SpeakerStats', () => {
48 48
             const domaintSpeakerTime = 100;
49 49
 
50 50
             for (let i = 0; i < domaintSpeakerEvents; i++) {
51
-                speakerStats.setIsDominantSpeaker(true);
51
+                speakerStats.setDominantSpeaker(true);
52 52
                 jasmine.clock().tick(domaintSpeakerTime);
53
-                speakerStats.setIsDominantSpeaker(false);
53
+                speakerStats.setDominantSpeaker(false);
54 54
             }
55 55
 
56 56
             expect(speakerStats.getTotalDominantSpeakerTime())

+ 7
- 5
modules/statistics/SpeakerStatsCollector.js View File

@@ -39,9 +39,11 @@ export default class SpeakerStatsCollector {
39 39
         conference.addEventListener(
40 40
             JitsiConferenceEvents.DISPLAY_NAME_CHANGED,
41 41
             this._onDisplayNameChange.bind(this));
42
-        conference.xmpp.addListener(
43
-            XMPPEvents.SPEAKER_STATS_RECEIVED,
44
-            this._updateStats.bind(this));
42
+        if (conference.xmpp) {
43
+            conference.xmpp.addListener(
44
+                XMPPEvents.SPEAKER_STATS_RECEIVED,
45
+                this._updateStats.bind(this));
46
+        }
45 47
     }
46 48
 
47 49
     /**
@@ -58,8 +60,8 @@ export default class SpeakerStatsCollector {
58 60
             = this.stats.users[this.stats.dominantSpeakerId];
59 61
         const newDominantSpeaker = this.stats.users[dominantSpeakerId];
60 62
 
61
-        oldDominantSpeaker && oldDominantSpeaker.setIsDominantSpeaker(false);
62
-        newDominantSpeaker && newDominantSpeaker.setIsDominantSpeaker(true);
63
+        oldDominantSpeaker && oldDominantSpeaker.setDominantSpeaker(false);
64
+        newDominantSpeaker && newDominantSpeaker.setDominantSpeaker(true);
63 65
         this.stats.dominantSpeakerId = dominantSpeakerId;
64 66
     }
65 67
 

+ 1
- 1
modules/xmpp/xmpp.js View File

@@ -596,7 +596,7 @@ export default class XMPP extends Listenable {
596 596
 
597 597
         msg.c('speakerstats', {
598 598
             xmlns: 'http://jitsi.org/jitmeet',
599
-            room: `${roomJid}` })
599
+            room: roomJid })
600 600
             .up();
601 601
 
602 602
         this.connection.send(msg);

Loading…
Cancel
Save