From ff06c15863ab2050617abfe45246c28ffdcc1813 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Thu, 20 Jun 2013 16:18:15 +0200 Subject: [PATCH] Abandon audio focus again on call released. Fix FM radio not resuming after outgoing call terminated. --- src/org/linphone/LinphoneManager.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 7741e1465..f35da5dcf 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -29,6 +29,7 @@ import static org.linphone.R.string.pref_codec_speex32_key; import static org.linphone.R.string.pref_video_enable_key; import static org.linphone.core.LinphoneCall.State.CallEnd; import static org.linphone.core.LinphoneCall.State.Error; +import static org.linphone.core.LinphoneCall.State.CallReleased; import static org.linphone.core.LinphoneCall.State.IncomingReceived; import java.io.File; @@ -1216,7 +1217,8 @@ public class LinphoneManager implements LinphoneCoreListener { if (state == LinphoneCall.State.Connected) { if (mLc.getCallsNb() == 1) { - Log.d("Audio focus requested: " + (mAudioManager.requestAudioFocus(null, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED ? "Granted" : "Denied")); + int res=mAudioManager.requestAudioFocus(null, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN); + Log.d("Audio focus requested: " + (res == AudioManager.AUDIOFOCUS_REQUEST_GRANTED ? "Granted" : "Denied")); } } @@ -1232,9 +1234,10 @@ public class LinphoneManager implements LinphoneCoreListener { stopRinging(); } - if (state == CallEnd || state == Error) { + if (state == CallEnd || state == Error || state == CallReleased) { if (mLc.getCallsNb() == 0) { - Log.d("Audio focus released: " + (mAudioManager.abandonAudioFocus(null) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED ? "Granted" : "Denied")); + int res=mAudioManager.abandonAudioFocus(null); + Log.d("Audio focus released: " + (res == AudioManager.AUDIOFOCUS_REQUEST_GRANTED ? "Granted" : "Denied")); mAudioManager.setMode(AudioManager.MODE_NORMAL); } Context activity = getContext();