fix crash on application stop

This commit is contained in:
Jehan Monnier 2011-02-14 16:54:02 +01:00
parent ea8e245820
commit 702cb38b22
2 changed files with 16 additions and 10 deletions

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.linphone"
android:versionCode="1102" android:versionName="1.1.2" android:installLocation="auto">
android:versionCode="1103" android:versionName="1.1.3" android:installLocation="auto">
<uses-sdk android:minSdkVersion="3" />
<application android:label="@string/app_name" android:debuggable = "true" android:icon="@drawable/logo_linphone_57x57">

View file

@ -92,7 +92,7 @@ public class LinphoneService extends Service implements LinphoneCoreListener {
Vibrator mVibrator;
private AudioManager mAudioManager;
private BroadcastReceiver mKeepAliveMgrReceiver = new KeepAliveManager();
private BroadcastReceiver mOutgoingCallReceiver = new OutgoingCallReceiver();
private BroadcastReceiver mOutgoingCallReceiver = null;
private Handler mHandler = new Handler() ;
static boolean isready() {
@ -155,12 +155,7 @@ public class LinphoneService extends Service implements LinphoneCoreListener {
IntentFilter lFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
lFilter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(mKeepAliveMgrReceiver, lFilter);
if (!mPref.getString(getString(R.string.pref_handle_outcall_key), OutgoingCallReceiver.key_on_demand).equalsIgnoreCase(OutgoingCallReceiver.key_off)){
lFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
lFilter.setPriority(0);
lFilter.addAction(Intent.ACTION_NEW_OUTGOING_CALL);
registerReceiver(mOutgoingCallReceiver,lFilter);
}
}
@ -357,7 +352,18 @@ public class LinphoneService extends Service implements LinphoneCoreListener {
for (PayloadType videoCodec : mLinphoneCore.listVideoCodecs()) {
enableDisableVideoCodecs(videoCodec);
}
if (!mPref.getString(getString(R.string.pref_handle_outcall_key), OutgoingCallReceiver.key_on_demand).equalsIgnoreCase(OutgoingCallReceiver.key_off)){
IntentFilter lFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
lFilter.setPriority(0);
lFilter.addAction(Intent.ACTION_NEW_OUTGOING_CALL);
if (mOutgoingCallReceiver == null) {
mOutgoingCallReceiver = new OutgoingCallReceiver();
}
registerReceiver(mOutgoingCallReceiver,lFilter);
} else if (mOutgoingCallReceiver!=null) {
unregisterReceiver(mOutgoingCallReceiver);
mOutgoingCallReceiver=null;
}
mLinphoneCore.enableEchoCancellation(mPref.getBoolean(getString(R.string.pref_echo_cancellation_key),false));
} catch (LinphoneCoreException e) {
@ -466,7 +472,7 @@ public class LinphoneService extends Service implements LinphoneCoreListener {
theLinphone=null;
mNotificationManager.cancel(NOTIFICATION_ID);
unregisterReceiver(mKeepAliveMgrReceiver);
unregisterReceiver(mOutgoingCallReceiver);
if (mOutgoingCallReceiver != null) unregisterReceiver(mOutgoingCallReceiver);
}
public void newSubscriptionRequest(LinphoneCore lc, LinphoneFriend lf,
String url) {