From b27a3676eb36e961c0464a9fd074ff843da5c80e Mon Sep 17 00:00:00 2001 From: Sylvain Berfini <sylvain.berfini@belledonne-communications.com> Date: Tue, 9 Feb 2021 13:15:37 +0100 Subject: [PATCH] Added a setting to disable automatic call pause when audio focus is lost --- .../core/tools/service/CoreManager.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/wrappers/java/classes/org/linphone/core/tools/service/CoreManager.java b/wrappers/java/classes/org/linphone/core/tools/service/CoreManager.java index de276f47fc..aa81c15c55 100644 --- a/wrappers/java/classes/org/linphone/core/tools/service/CoreManager.java +++ b/wrappers/java/classes/org/linphone/core/tools/service/CoreManager.java @@ -32,6 +32,7 @@ import android.os.Build; import org.linphone.core.AudioDevice; import org.linphone.core.Call; +import org.linphone.core.Config; import org.linphone.core.Core; import org.linphone.core.CoreListenerStub; import org.linphone.core.tools.Log; @@ -255,12 +256,17 @@ public class CoreManager { public void onAudioFocusLost() { if (mCore != null) { - if (mCore.isInConference()) { - Log.i("[Core Manager] App has lost audio focus, leaving conference"); - mCore.leaveConference(); + boolean pauseCallsWhenAudioFocusIsLost = mCore.getConfig().getBool("audio", "android_pause_calls_when_audio_focus_lost", true); + if (pauseCallsWhenAudioFocusIsLost) { + if (mCore.isInConference()) { + Log.i("[Core Manager] App has lost audio focus, leaving conference"); + mCore.leaveConference(); + } else { + Log.i("[Core Manager] App has lost audio focus, pausing all calls"); + mCore.pauseAllCalls(); + } } else { - Log.i("[Core Manager] App has lost audio focus, pausing all calls"); - mCore.pauseAllCalls(); + Log.w("[Core Manager] Audio focus lost but keeping calls running"); } } } @@ -352,7 +358,7 @@ public class CoreManager { sb.append(abi).append(", "); } Log.i(sb.substring(0, sb.length() - 2)); - Log.i("========================================="); + Log.i("========================================="); } private void dumpLinphoneInformation() { @@ -367,6 +373,6 @@ public class CoreManager { Log.i(sb.substring(0, sb.length() - 2)); Log.i("PACKAGE=", org.linphone.core.BuildConfig.LIBRARY_PACKAGE_NAME); Log.i("BUILD TYPE=", org.linphone.core.BuildConfig.BUILD_TYPE); - Log.i("========================================="); + Log.i("========================================="); } } -- GitLab