diff --git a/ios/sdk/sdk.xcodeproj/project.pbxproj b/ios/sdk/sdk.xcodeproj/project.pbxproj index 2955b909e93e..f8163e04937f 100644 --- a/ios/sdk/sdk.xcodeproj/project.pbxproj +++ b/ios/sdk/sdk.xcodeproj/project.pbxproj @@ -41,7 +41,7 @@ 4E812F3A28F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E812F3628F9A4ED0087ACC9 /* JitsiMeetView+Private.m */; }; 4ED4FFF32721B9B90074E620 /* JitsiAudioSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4ED4FFF42721B9B90074E620 /* JitsiAudioSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */; }; - 6F08DF7D4458EE3CF3F36F6D /* (null) in Frameworks */ = {isa = PBXBuildFile; }; + 6F08DF7D4458EE3CF3F36F6D /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; 9A8EE79C77C17743BB66E8BD /* libPods-JitsiMeetSDKLite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B46497DE9A95BDF5E312AF48 /* libPods-JitsiMeetSDKLite.a */; }; A4A934E9212F3ADB001E9388 /* Dropbox.m in Sources */ = {isa = PBXBuildFile; fileRef = A4A934E8212F3ADB001E9388 /* Dropbox.m */; }; C6245F5D2053091D0040BE68 /* image-resize@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6245F5B2053091D0040BE68 /* image-resize@2x.png */; }; @@ -195,7 +195,7 @@ files = ( 0BB9AD791F5EC6D7001C08DB /* Intents.framework in Frameworks */, 0BB9AD771F5EC6CE001C08DB /* CallKit.framework in Frameworks */, - 6F08DF7D4458EE3CF3F36F6D /* (null) in Frameworks */, + 6F08DF7D4458EE3CF3F36F6D /* BuildFile in Frameworks */, 3453F4A32680898C4A40E821 /* libPods-JitsiMeetSDK.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/ios/sdk/src/ScreenShareEventEmitter.h b/ios/sdk/src/ScreenShareEventEmitter.h index 8670f9bb3aa2..cd871ef3ea54 100644 --- a/ios/sdk/src/ScreenShareEventEmitter.h +++ b/ios/sdk/src/ScreenShareEventEmitter.h @@ -1,5 +1,5 @@ /* - * Copyright @ 2019-present 8x8, Inc. + * Copyright @ 2021-present 8x8, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/ios/sdk/src/ScreenShareEventEmitter.m b/ios/sdk/src/ScreenShareEventEmitter.m index 8244e28aa0f4..a4e39baca50b 100644 --- a/ios/sdk/src/ScreenShareEventEmitter.m +++ b/ios/sdk/src/ScreenShareEventEmitter.m @@ -1,5 +1,5 @@ /* - * Copyright @ 2019-present 8x8, Inc. + * Copyright @ 2021-present 8x8, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/react/features/mobile/external-api/middleware.ts b/react/features/mobile/external-api/middleware.ts index fc5cc3c0d7e7..0bc1f3d513b6 100644 --- a/react/features/mobile/external-api/middleware.ts +++ b/react/features/mobile/external-api/middleware.ts @@ -8,6 +8,7 @@ import { AnyAction } from 'redux'; import { ENDPOINT_TEXT_MESSAGE_NAME } from '../../../../modules/API/constants'; import { appNavigate } from '../../app/actions.native'; import { IStore } from '../../app/types'; +import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../../base/app/actionTypes'; import { CONFERENCE_BLURRED, CONFERENCE_FAILED, @@ -45,7 +46,6 @@ import { } from '../../base/participants/functions'; import MiddlewareRegistry from '../../base/redux/MiddlewareRegistry'; import StateListenerRegistry from '../../base/redux/StateListenerRegistry'; -import { toggleScreensharing } from '../../base/tracks/actions.native'; import { getLocalTracks, isLocalTrackMuted } from '../../base/tracks/functions.native'; import { ITrack } from '../../base/tracks/types'; import { CLOSE_CHAT, OPEN_CHAT } from '../../chat/actionTypes'; @@ -127,6 +127,12 @@ externalAPIEnabled && MiddlewareRegistry.register(store => next => action => { const { type } = action; switch (type) { + case APP_WILL_MOUNT: + _registerForNativeEvents(store); + break; + case APP_WILL_UNMOUNT: + _unregisterForNativeEvents(); + break; case CONFERENCE_FAILED: { const { error, ...data } = action; diff --git a/react/features/mobile/screen-share/middleware.ts b/react/features/mobile/screen-share/middleware.ts index e12a23299374..da9bfda10c43 100644 --- a/react/features/mobile/screen-share/middleware.ts +++ b/react/features/mobile/screen-share/middleware.ts @@ -22,7 +22,7 @@ if (screenShareApi) { } /** - * Middleware that captures Redux actions and uses the ExternalAPI module to + * Middleware that captures Redux actions and uses the ScreenShareEventEmitter module to * turn them into native events so the application knows about them. * * @param {Store} store - Redux store. @@ -51,12 +51,15 @@ screenShareEventEmitter && MiddlewareRegistry.register(store => next => action = * @private * @returns {void} */ -function _registerForNativeEvents(store) { +function _registerForNativeEvents(store: any) { const { dispatch } = store; - screenShareEventEmitter.addListener(ScreenShareEventEmitter.TOGGLE_SCREEN_SHARE, ({ enabled }) => { - dispatch(toggleScreensharing(enabled)); - }); + screenShareEventEmitter.addListener( + ScreenShareEventEmitter.TOGGLE_SCREEN_SHARE, + ({ enabled }: { enabled: boolean; } + ) => { + dispatch(toggleScreensharing(enabled)); + }); } /**