From bdf69da535b44374b9349ef33ba3c0c1f608a8f0 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Mon, 7 Nov 2011 14:54:27 +0100 Subject: [PATCH] Allow several calls with the same recipient. --- src/org/linphone/ConferenceActivity.java | 13 +++++++------ src/org/linphone/IncomingCallActivity.java | 5 +++-- submodules/externals/exosip | 2 +- submodules/externals/osip | 2 +- submodules/linphone | 2 +- 5 files changed, 13 insertions(+), 11 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(); } } diff --git a/submodules/externals/exosip b/submodules/externals/exosip index 4eabd05b1..0a98b96e5 160000 --- a/submodules/externals/exosip +++ b/submodules/externals/exosip @@ -1 +1 @@ -Subproject commit 4eabd05b149d18629098f3254f15c8d14ff6664c +Subproject commit 0a98b96e5c72191d42fb8727e1088db126edf005 diff --git a/submodules/externals/osip b/submodules/externals/osip index 37d363d04..c27b9b670 160000 --- a/submodules/externals/osip +++ b/submodules/externals/osip @@ -1 +1 @@ -Subproject commit 37d363d04e8b9300a526dde4f3b331ec8dbbd079 +Subproject commit c27b9b6702f62cdbd2143c1ccc85b8980b83adac diff --git a/submodules/linphone b/submodules/linphone index f706103cc..cfaa4721e 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit f706103cc3b7bb5b31c02fd83f8e221677264b68 +Subproject commit cfaa4721e5bea988e585ee221ec88e97b657925d