diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 7f47fa291..85cc2d431 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -42,8 +42,10 @@ import java.util.Set; import java.util.Timer; import java.util.TimerTask; +import org.linphone.LinphoneSimpleListener.ConnectivityChangedListener; import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener; import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener.AudioState; +import org.linphone.LinphoneSimpleListener.LinphoneOnDTMFReceivedListener; import org.linphone.LinphoneSimpleListener.LinphoneOnMessageReceivedListener; import org.linphone.LinphoneSimpleListener.LinphoneServiceListener; import org.linphone.core.CallDirection; @@ -144,6 +146,7 @@ public final class LinphoneManager implements LinphoneCoreListener { private String lastLcStatusMessage; private String basePath; private static boolean sExited; + private String contactParams; private WakeLock mIncallWakeLock; @@ -703,6 +706,8 @@ public final class LinphoneManager implements LinphoneCoreListener { String contactInfos = "app-id=" + appId + ";pn-type=google;pn-tok=" + regId + ";pn-msg-str=IM_MSG;pn-call-str=IC_MSG;pn-call-snd=ring.caf;pn-msg-snd=msg.caf"; proxycon.setContactParameters(contactInfos); } + } else if (contactParams != null) { + proxycon.setContactParameters(contactParams); } mLc.addProxyConfig(proxycon); @@ -782,6 +787,10 @@ public final class LinphoneManager implements LinphoneCoreListener { } return defaultValue; } + + public void setContactParams(String params) { + contactParams = params; + } public void initFromConf() throws LinphoneConfigException { boolean isDebugLogEnabled = !(mR.getBoolean(R.bool.disable_every_log)) && getPrefBoolean(R.string.pref_debug_key, mR.getBoolean(R.bool.pref_debug_default)); @@ -1015,6 +1024,15 @@ public final class LinphoneManager implements LinphoneCoreListener { Log.i(eventInfo.getTypeName()," connected: wifi only activated, setting network unreachable"); } } + + if (connectivityListener != null) { + connectivityListener.onConnectivityChanged(mServiceContext, eventInfo, cm); + } + } + + private ConnectivityChangedListener connectivityListener; + public void addConnectivityChangedListener(ConnectivityChangedListener l) { + connectivityListener = l; } public interface EcCalibrationListener { @@ -1049,6 +1067,18 @@ public final class LinphoneManager implements LinphoneCoreListener { LinphoneAddress from, String message) { //deprecated } + + @Override + public void dtmfReceived(LinphoneCore lc, LinphoneCall call, int dtmf) { + Log.d("DTMF received: " + dtmf); + if (dtmfReceivedListener != null) + dtmfReceivedListener.onDTMFReceived(call, dtmf); + } + + private LinphoneOnDTMFReceivedListener dtmfReceivedListener; + public void setOnDTMFReceivedListener(LinphoneOnDTMFReceivedListener listener) { + dtmfReceivedListener = listener; + } @Override public void messageReceived(LinphoneCore lc, LinphoneChatRoom cr, LinphoneChatMessage message) { @@ -1080,11 +1110,6 @@ public final class LinphoneManager implements LinphoneCoreListener { } } - @Override - public void dtmfReceived(LinphoneCore lc, LinphoneCall call, int dtmf) { - Log.d("DTMF received: " + dtmf); - } - public String getLastLcStatusMessage() { return lastLcStatusMessage; } diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java index 5301b0982..6481260c1 100644 --- a/src/org/linphone/LinphoneService.java +++ b/src/org/linphone/LinphoneService.java @@ -291,6 +291,11 @@ public final class LinphoneService extends Service implements LinphoneServiceLis notifyWrapper(CUSTOM_NOTIF_ID, mCustomNotif); } + public void removeCustomNotification() { + mNM.cancel(CUSTOM_NOTIF_ID); + resetIntentLaunchedOnNotificationClick(); + } + public void displayMessageNotification(String fromSipUri, String fromName, String message) { Intent notifIntent = new Intent(this, LinphoneActivity.class); notifIntent.putExtra("GoToChat", true); diff --git a/src/org/linphone/LinphoneSimpleListener.java b/src/org/linphone/LinphoneSimpleListener.java index 3d2fe0d7f..7864a20ba 100644 --- a/src/org/linphone/LinphoneSimpleListener.java +++ b/src/org/linphone/LinphoneSimpleListener.java @@ -25,7 +25,10 @@ import org.linphone.core.LinphoneChatMessage; import org.linphone.core.LinphoneCore.GlobalState; import org.linphone.core.LinphoneCore.RegistrationState; +import android.content.Context; import android.media.MediaPlayer; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; public interface LinphoneSimpleListener { @@ -67,4 +70,12 @@ public interface LinphoneSimpleListener { public static interface LinphoneOnRegistrationStateChangedListener extends LinphoneSimpleListener { void onRegistrationStateChanged(RegistrationState state); } + + public static interface ConnectivityChangedListener extends LinphoneSimpleListener { + void onConnectivityChanged(Context context, NetworkInfo eventInfo, ConnectivityManager cm); + } + + public static interface LinphoneOnDTMFReceivedListener extends LinphoneSimpleListener { + void onDTMFReceived(LinphoneCall call, int dtmf); + } }