From 68f2df4abc7a6ec8a1b43d064815ede3099ce201 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Wed, 9 Nov 2011 14:33:06 +0100 Subject: [PATCH] Fix regression: accept incoming call when other exist. --- src/org/linphone/IncomingCallActivity.java | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/org/linphone/IncomingCallActivity.java b/src/org/linphone/IncomingCallActivity.java index c6459022a..6cb8f5609 100644 --- a/src/org/linphone/IncomingCallActivity.java +++ b/src/org/linphone/IncomingCallActivity.java @@ -18,6 +18,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone; +import java.util.List; + import org.linphone.LinphoneManagerWaitHelper.LinphoneManagerReadyListener; import org.linphone.LinphoneSimpleListener.LinphoneOnCallStateChangedListener; import org.linphone.core.LinphoneAddress; @@ -28,7 +30,6 @@ import org.linphone.ui.SlidingTab; import org.linphone.ui.SlidingTab.OnTriggerListener; import android.app.Activity; -import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.KeyEvent; @@ -53,16 +54,6 @@ public class IncomingCallActivity extends Activity implements LinphoneManagerRea private LinphoneManagerWaitHelper mHelper; private SlidingTab mIncomingCallWidget; - private void findIncomingCall(Intent intent) { - String stringUri = intent.getStringExtra("stringUri"); - // Only one call ringing at a time is allowed - mCall = LinphoneManager.getLc().getCurrentCall(); - if (mCall == null) { - Log.e("Couldn't find incoming call from ", stringUri); - finish(); - } - } - @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.incoming); @@ -98,8 +89,16 @@ public class IncomingCallActivity extends Activity implements LinphoneManagerRea @Override public void onResumeWhenManagerReady() { LinphoneManager.addListener(this); - findIncomingCall(getIntent()); + // Only one call ringing at a time is allowed + List calls = LinphoneUtils.getLinphoneCalls(LinphoneManager.getLc()); + for (LinphoneCall call : calls) { + if (State.IncomingReceived == call.getState()) { + mCall = call; + break; + } + } if (mCall == null) { + Log.e("Couldn't find incoming call"); finish(); return; }