Bläddra i källkod

ref(remotecontrol): Moves hangup logic to remote control module

j8
hristoterezov 8 år sedan
förälder
incheckning
bd98d661d3
3 ändrade filer med 42 tillägg och 3 borttagningar
  1. 4
    0
      ConferenceEvents.js
  2. 24
    3
      conference.js
  3. 14
    0
      modules/remotecontrol/Receiver.js

+ 4
- 0
ConferenceEvents.js Visa fil

@@ -0,0 +1,4 @@
1
+/**
2
+ * Notifies interested parties that hangup procedure will start.
3
+ */
4
+export const BEFORE_HANGUP = "conference.before_hangup";

+ 24
- 3
conference.js Visa fil

@@ -14,11 +14,11 @@ import {reportError} from './modules/util/helpers';
14 14
 
15 15
 import UIEvents from './service/UI/UIEvents';
16 16
 import UIUtil from './modules/UI/util/UIUtil';
17
+import * as JitsiMeetConferenceEvents from './ConferenceEvents';
17 18
 
18 19
 import analytics from './modules/analytics/analytics';
19 20
 
20
-// For remote control testing:
21
-// import remoteControlReceiver from './modules/remotecontrol/Receiver';
21
+import EventEmitter from "events";
22 22
 
23 23
 const ConnectionEvents = JitsiMeetJS.events.connection;
24 24
 const ConnectionErrors = JitsiMeetJS.errors.connection;
@@ -31,6 +31,8 @@ const TrackErrors = JitsiMeetJS.errors.track;
31 31
 
32 32
 const ConnectionQualityEvents = JitsiMeetJS.events.connectionQuality;
33 33
 
34
+const eventEmitter = new EventEmitter();
35
+
34 36
 let room, connection, localAudio, localVideo;
35 37
 
36 38
 /**
@@ -1783,8 +1785,8 @@ export default {
1783 1785
      * requested
1784 1786
      */
1785 1787
     hangup (requestFeedback = false) {
1788
+        eventEmitter.emit(JitsiMeetConferenceEvents.BEFORE_HANGUP);
1786 1789
         APP.UI.hideRingOverLay();
1787
-        APP.remoteControl.receiver.enable(false);
1788 1790
         let requestFeedbackPromise = requestFeedback
1789 1791
                 ? APP.UI.requestFeedbackOnHangup()
1790 1792
                 // false - because the thank you dialog shouldn't be displayed
@@ -1846,5 +1848,24 @@ export default {
1846 1848
      */
1847 1849
     sendEndpointMessage (to, payload) {
1848 1850
         room.sendEndpointMessage(to, payload);
1851
+    },
1852
+
1853
+    /**
1854
+     * Adds new listener.
1855
+     * @param {String} eventName the name of the event
1856
+     * @param {Function} listener the listener.
1857
+     */
1858
+    addListener (eventName, listener) {
1859
+        eventEmitter.addListener(eventName, listener);
1860
+    },
1861
+
1862
+    /**
1863
+     * Removes listener.
1864
+     * @param {String} eventName the name of the event that triggers the
1865
+     * listener
1866
+     * @param {Function} listener the listener.
1867
+     */
1868
+    removeListener (eventName, listener) {
1869
+        eventEmitter.removeListener(eventName, listener);
1849 1870
     }
1850 1871
 };

+ 14
- 0
modules/remotecontrol/Receiver.js Visa fil

@@ -3,6 +3,7 @@ const logger = require("jitsi-meet-logger").getLogger(__filename);
3 3
 import {DISCO_REMOTE_CONTROL_FEATURE, REMOTE_CONTROL_EVENT_TYPE, EVENT_TYPES,
4 4
     PERMISSIONS_ACTIONS} from "../../service/remotecontrol/Constants";
5 5
 import RemoteControlParticipant from "./RemoteControlParticipant";
6
+import * as JitsiMeetConferenceEvents from '../../ConferenceEvents';
6 7
 
7 8
 const ConferenceEvents = JitsiMeetJS.events.conference;
8 9
 
@@ -23,6 +24,7 @@ export default class Receiver extends RemoteControlParticipant {
23 24
         this._remoteControlEventsListener
24 25
             = this._onRemoteControlEvent.bind(this);
25 26
         this._userLeftListener = this._onUserLeft.bind(this);
27
+        this._hangupListener = this._onHangup.bind(this);
26 28
     }
27 29
 
28 30
     /**
@@ -40,6 +42,8 @@ export default class Receiver extends RemoteControlParticipant {
40 42
             APP.conference.addConferenceListener(
41 43
                 ConferenceEvents.ENDPOINT_MESSAGE_RECEIVED,
42 44
                 this._remoteControlEventsListener);
45
+            APP.conference.addListener(JitsiMeetConferenceEvents.BEFORE_HANGUP,
46
+                this._hangupListener);
43 47
         } else {
44 48
             logger.log("Remote control receiver disabled.");
45 49
             this._stop(true);
@@ -47,6 +51,9 @@ export default class Receiver extends RemoteControlParticipant {
47 51
             APP.conference.removeConferenceListener(
48 52
                 ConferenceEvents.ENDPOINT_MESSAGE_RECEIVED,
49 53
                 this._remoteControlEventsListener);
54
+            APP.conference.removeListener(
55
+                JitsiMeetConferenceEvents.BEFORE_HANGUP,
56
+                this._hangupListener);
50 57
         }
51 58
     }
52 59
 
@@ -174,4 +181,11 @@ export default class Receiver extends RemoteControlParticipant {
174 181
             this._stop();
175 182
         }
176 183
     }
184
+
185
+    /**
186
+     * Handles hangup events. Disables the receiver.
187
+     */
188
+    _onHangup() {
189
+        this.enable(false);
190
+    }
177 191
 }

Laddar…
Avbryt
Spara