瀏覽代碼

fix(ScreenShare): remove listener for native events when app unmounts

master
Alex Bumbu 4 年之前
父節點
當前提交
724391648e
No account linked to committer's email address
共有 1 個文件被更改,包括 22 次插入1 次删除
  1. 22
    1
      react/features/mobile/external-api/middleware.js

+ 22
- 1
react/features/mobile/external-api/middleware.js 查看文件

5
 
5
 
6
 import { ENDPOINT_TEXT_MESSAGE_NAME } from '../../../../modules/API/constants';
6
 import { ENDPOINT_TEXT_MESSAGE_NAME } from '../../../../modules/API/constants';
7
 import { appNavigate } from '../../app/actions';
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
 import {
9
 import {
10
     CONFERENCE_FAILED,
10
     CONFERENCE_FAILED,
11
     CONFERENCE_JOINED,
11
     CONFERENCE_JOINED,
93
     case APP_WILL_MOUNT:
93
     case APP_WILL_MOUNT:
94
         _registerForNativeEvents(store);
94
         _registerForNativeEvents(store);
95
         break;
95
         break;
96
+    case APP_WILL_UNMOUNT:
97
+        _unregisterForNativeEvents();
98
+        break;
96
     case CONFERENCE_FAILED: {
99
     case CONFERENCE_FAILED: {
97
         const { error, ...data } = action;
100
         const { error, ...data } = action;
98
 
101
 
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
  * Registers for endpoint messages sent on conference data channel.
374
  * Registers for endpoint messages sent on conference data channel.
354
  *
375
  *

Loading…
取消
儲存