From 37c36ce819f092564e4025c2727eff86f9109f9c Mon Sep 17 00:00:00 2001 From: Ergyun Syuleyman Date: Wed, 17 Jun 2020 15:34:54 +0300 Subject: [PATCH] -core sdk pause and resume calls --- app/build.gradle | 4 ++-- .../data/sdk/calls/ConferenceSDKModule.java | 22 ++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index df102aa9bc..0a498dacc1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -679,8 +679,8 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // Conference, Calls mobile SDK - implementation 'com.nynja.sdk:NynjaSdk:1.22.3@aar' - //implementation(name: 'NynjaSdk-1.22.2', ext: 'aar') + implementation 'com.nynja.sdk:NynjaSdk:1.22.4@aar' + //implementation(name: 'NynjaSdk-1.22.4', ext: 'aar') //ExoPlayer implementation 'com.google.android.exoplayer:exoplayer-core:2.9.6' diff --git a/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java b/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java index c886edf771..c7eacc2658 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java +++ b/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java @@ -237,6 +237,8 @@ public class ConferenceSDKModule extends BaseSDKModule { public void muteMic(boolean mute) { if (mActiveConference == null) return; + if (mActiveConference.mState.isPaused && !mute) return; + if (mActiveConference.mConference != null) { boolean changed = false; if (mActiveConference.mState.isMuted && !mute) { @@ -3545,6 +3547,7 @@ public class ConferenceSDKModule extends BaseSDKModule { if (!hasCreatedActiveCall()) return; if (mActiveConference.mConference == null) return; if (!mActiveConference.isScreenShareEnabled) return; + if (mActiveConference.mState.isPaused) return; new Handler(Looper.getMainLooper()).post(() -> { mActiveConference.mConference.startScreenSharing(); }); @@ -3583,6 +3586,7 @@ public class ConferenceSDKModule extends BaseSDKModule { private void resumeCallVideoCapturer() { if (!hasCreatedActiveCall()) return; + if (mActiveConference.mState.isPaused) return; if (mActiveConference.mConference == null) return; if (!mActiveConference.isVideoEnabled) return; @@ -4040,8 +4044,23 @@ public class ConferenceSDKModule extends BaseSDKModule { mActiveConference.mState.pauseRestoreState != null); } + private void pauseActiveCall() { + if (mActiveConference == null) return; + if (mActiveConference.mConference == null) return; + mActiveConference.mConference.pause(); + } + + private void resumeActiveCall() { + if (mActiveConference == null) return; + if (mActiveConference.mConference == null) return; + if (!mActiveConference.mState.isPaused) return; + + mActiveConference.mConference.resume(); + } + private synchronized void pauseCall() { mActiveConference.mState.pause(); + pauseActiveCall(); pauseCallVideoCapturer(); muteMic(true); stopScreenCapture(); @@ -4055,8 +4074,9 @@ public class ConferenceSDKModule extends BaseSDKModule { public synchronized void resumeCall() { - mActiveConference.mState.isPaused = false; if (mActiveConference.mState.pauseRestoreState != null) { + resumeActiveCall(); + mActiveConference.mState.isPaused = false; if (mActiveConference.mState.pauseRestoreState.isOwnStreamActive) { resumeCallVideoCapturer(); } -- GitLab