From 47ba198c78aaeeb3e66b8583c9ef48c8ca557f45 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Tue, 8 Nov 2011 09:17:04 +0100 Subject: [PATCH] Real commit for Allow several calls with the same recipient. --- src/org/linphone/ConferenceActivity.java | 13 +++++++------ src/org/linphone/IncomingCallActivity.java | 5 +++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/org/linphone/ConferenceActivity.java b/src/org/linphone/ConferenceActivity.java index 1ed88d39b..cfe02afc1 100644 --- a/src/org/linphone/ConferenceActivity.java +++ b/src/org/linphone/ConferenceActivity.java @@ -815,10 +815,12 @@ public class ConferenceActivity extends ListActivity implements } else if (state == State.Paused || state == State.PausedByRemote || state == State.StreamsRunning) { Collections.sort(adapter.linphoneCalls, ConferenceActivity.this); adapter.notifyDataSetChanged(); - } else if (state == State.CallEnd) { - adapter.linphoneCalls.remove(call); - Collections.sort(adapter.linphoneCalls, ConferenceActivity.this); - recreateActivity(adapter); + } else if (state == State.CallEnd || state == State.Error || state == State.CallReleased) { + if (adapter.linphoneCalls.contains(call)) { + adapter.linphoneCalls.remove(call); + Collections.sort(adapter.linphoneCalls, ConferenceActivity.this); + recreateActivity(adapter); + } } updateConfState(); @@ -851,8 +853,7 @@ public class ConferenceActivity extends ListActivity implements boolean invalidUri; try { String target = lc().interpretUrl(uri).asStringUriOnly(); - LinphoneCall alreadyInCall = lc().findCallFromUri(target); - invalidUri = alreadyInCall != null || lc().isMyself(target); + invalidUri = lc().isMyself(target); } catch (LinphoneCoreException e) { invalidUri = true; } diff --git a/src/org/linphone/IncomingCallActivity.java b/src/org/linphone/IncomingCallActivity.java index 766e3ffa7..c6459022a 100644 --- a/src/org/linphone/IncomingCallActivity.java +++ b/src/org/linphone/IncomingCallActivity.java @@ -55,10 +55,11 @@ public class IncomingCallActivity extends Activity implements LinphoneManagerRea private void findIncomingCall(Intent intent) { String stringUri = intent.getStringExtra("stringUri"); - mCall = LinphoneManager.getLc().findCallFromUri(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); - Toast.makeText(this, "Error", Toast.LENGTH_SHORT); + finish(); } }