From 9d80634e7fef29bde3b03eaa8d1d50d3d275fd80 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Mon, 10 Oct 2011 10:45:06 +0200 Subject: [PATCH] Pause linphone SIP calls on phone call received. --- AndroidManifest.xml | 7 ++- src/org/linphone/ConferenceActivity.java | 3 ++ .../linphone/PhoneStateChangedReceiver.java | 48 +++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/org/linphone/PhoneStateChangedReceiver.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4e73fb38a..5efc5929c 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -123,8 +123,10 @@ - - + + + + + diff --git a/src/org/linphone/ConferenceActivity.java b/src/org/linphone/ConferenceActivity.java index 79f0ad409..f975a1904 100644 --- a/src/org/linphone/ConferenceActivity.java +++ b/src/org/linphone/ConferenceActivity.java @@ -143,6 +143,9 @@ public class ConferenceActivity extends ListActivity implements updateCalleeImage(); updateConfState(); updateSimpleControlButtons(); + CalleeListAdapter adapter = (CalleeListAdapter) getListAdapter(); + adapter.notifyDataSetInvalidated(); + adapter.notifyDataSetChanged(); } @Override diff --git a/src/org/linphone/PhoneStateChangedReceiver.java b/src/org/linphone/PhoneStateChangedReceiver.java new file mode 100644 index 000000000..c5125faa0 --- /dev/null +++ b/src/org/linphone/PhoneStateChangedReceiver.java @@ -0,0 +1,48 @@ +/* +PhoneStateReceiver.java +Copyright (C) 2011 Belledonne Communications, Grenoble, France + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ +package org.linphone; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.telephony.TelephonyManager; + +/** + * Pause current SIP calls when GSM phone rings or is active. + * + * @author Guillaume Beraudo + * + */ +public class PhoneStateChangedReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + final String extraState = intent.getStringExtra(TelephonyManager.EXTRA_STATE); + + if (TelephonyManager.EXTRA_STATE_RINGING.equals(extraState) || TelephonyManager.EXTRA_STATE_OFFHOOK.equals(extraState)) { + if (LinphoneManager.isInstanciated()) { + LinphoneManager.getLc().pauseAllCalls(); + } + } + + // TelephonyManager.EXTRA_STATE_IDLE.equals(extraState) + // do nothing + } + +}