|
@@ -5,7 +5,7 @@ import { NativeEventEmitter, NativeModules } from 'react-native';
|
5
|
5
|
|
6
|
6
|
import { ENDPOINT_TEXT_MESSAGE_NAME } from '../../../../modules/API/constants';
|
7
|
7
|
import { appNavigate } from '../../app/actions';
|
8
|
|
-import { APP_WILL_MOUNT } from '../../base/app/actionTypes';
|
|
8
|
+import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../../base/app/actionTypes';
|
9
|
9
|
import {
|
10
|
10
|
CONFERENCE_FAILED,
|
11
|
11
|
CONFERENCE_JOINED,
|
|
@@ -93,6 +93,9 @@ MiddlewareRegistry.register(store => next => action => {
|
93
|
93
|
case APP_WILL_MOUNT:
|
94
|
94
|
_registerForNativeEvents(store);
|
95
|
95
|
break;
|
|
96
|
+ case APP_WILL_UNMOUNT:
|
|
97
|
+ _unregisterForNativeEvents();
|
|
98
|
+ break;
|
96
|
99
|
case CONFERENCE_FAILED: {
|
97
|
100
|
const { error, ...data } = action;
|
98
|
101
|
|
|
@@ -349,6 +352,24 @@ function _registerForNativeEvents(store) {
|
349
|
352
|
|
350
|
353
|
}
|
351
|
354
|
|
|
355
|
+/**
|
|
356
|
+ * Unregister for events sent from the native side via NativeEventEmitter.
|
|
357
|
+ *
|
|
358
|
+ * @private
|
|
359
|
+ * @returns {void}
|
|
360
|
+ */
|
|
361
|
+function _unregisterForNativeEvents() {
|
|
362
|
+ eventEmitter.removeAllListeners(ExternalAPI.HANG_UP);
|
|
363
|
+ eventEmitter.removeAllListeners(ExternalAPI.SET_AUDIO_MUTED);
|
|
364
|
+ eventEmitter.removeAllListeners(ExternalAPI.SET_VIDEO_MUTED);
|
|
365
|
+ eventEmitter.removeAllListeners(ExternalAPI.SEND_ENDPOINT_TEXT_MESSAGE);
|
|
366
|
+ eventEmitter.removeAllListeners(ExternalAPI.TOGGLE_SCREEN_SHARE);
|
|
367
|
+ eventEmitter.removeAllListeners(ExternalAPI.RETRIEVE_PARTICIPANTS_INFO);
|
|
368
|
+ eventEmitter.removeAllListeners(ExternalAPI.OPEN_CHAT);
|
|
369
|
+ eventEmitter.removeAllListeners(ExternalAPI.CLOSE_CHAT);
|
|
370
|
+ eventEmitter.removeAllListeners(ExternalAPI.SEND_CHAT_MESSAGE);
|
|
371
|
+}
|
|
372
|
+
|
352
|
373
|
/**
|
353
|
374
|
* Registers for endpoint messages sent on conference data channel.
|
354
|
375
|
*
|