From 31bc125158e807c737440f7155a31e50167eab49 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Tue, 14 Dec 2010 15:11:24 +0100 Subject: [PATCH] decline calls while incall because multi call not supported yet --- src/org/linphone/LinphoneActivity.java | 6 +++--- src/org/linphone/LinphoneService.java | 5 +++-- src/org/linphone/core/LinphoneCallImpl.java | 4 ++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 39524fcaf..66f2cd204 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -145,7 +145,7 @@ public class LinphoneActivity extends TabActivity { } else { mAudioManager.setSpeakerphoneOn(false); } - + stopProxymitySensor();//just in case theLinphoneActivity = null; } @@ -249,9 +249,9 @@ public class LinphoneActivity extends TabActivity { //Log.d(LinphoneService.TAG, "Proximity sensor report ["+event.values[0]+"] , for max range ["+event.sensor.getMaximumRange()+"]"); if (event.values[0] != event.sensor.getMaximumRange() ) { - LinphoneActivity.instance().hideScreen(true); + hideScreen(true); } else { - LinphoneActivity.instance().hideScreen(false); + hideScreen(false); } } diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java index 969382a26..73075df4e 100644 --- a/src/org/linphone/LinphoneService.java +++ b/src/org/linphone/LinphoneService.java @@ -257,9 +257,10 @@ public class LinphoneService extends Service implements LinphoneCoreListener { } public void callState(final LinphoneCore lc,final LinphoneCall call, final State state, final String message) { Log.i(TAG, "new state ["+state+"]"); - if (state == LinphoneCall.State.IncomingReceived &&mLinphoneCore.isIncall()) { + if (state == LinphoneCall.State.IncomingReceived && !call.equals(mLinphoneCore.getCurrentCall())) { //no multicall support, just decline - //mLinphoneCore.terminateCall(call); + mLinphoneCore.terminateCall(call); + return; } mHandler.post(new Runnable() { public void run() { diff --git a/src/org/linphone/core/LinphoneCallImpl.java b/src/org/linphone/core/LinphoneCallImpl.java index 74c701a72..e2aad29a1 100644 --- a/src/org/linphone/core/LinphoneCallImpl.java +++ b/src/org/linphone/core/LinphoneCallImpl.java @@ -31,6 +31,7 @@ class LinphoneCallImpl implements LinphoneCall { native private int getState(long nativePtr); private native long getCurrentParamsCopy(long nativePtr); private native void enableCamera(long nativePtr, boolean enabled); + protected LinphoneCallImpl(long aNativePtr) { nativePtr = aNativePtr; @@ -68,4 +69,7 @@ class LinphoneCallImpl implements LinphoneCall { public void enableCamera(boolean enabled) { enableCamera(nativePtr, enabled); } + public boolean equals(Object call) { + return nativePtr == ((LinphoneCallImpl)call).nativePtr; + } }