diff --git a/app/src/main/java/org/linphone/LinphoneManager.java b/app/src/main/java/org/linphone/LinphoneManager.java index 3b609482f..cc545dc5d 100644 --- a/app/src/main/java/org/linphone/LinphoneManager.java +++ b/app/src/main/java/org/linphone/LinphoneManager.java @@ -146,6 +146,10 @@ public class LinphoneManager implements SensorEventListener { } } }; + + Log.i("[Manager] Registering phone state listener"); + mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); + mHasLastCallSasBeenRejected = false; mCallManager = new CallManager(c); @@ -233,10 +237,6 @@ public class LinphoneManager implements SensorEventListener { if (mCore.getCallsNb() == 0) { // Disabling proximity sensor enableProximitySensing(false); - - Log.i("[Manager] Unregistering phone state listener"); - mTelephonyManager.listen( - mPhoneStateListener, PhoneStateListener.LISTEN_NONE); } } else if (state == State.UpdatedByRemote) { // If the correspondent proposes video while audio call @@ -251,12 +251,6 @@ public class LinphoneManager implements SensorEventListener { && mCore.getConference() == null) { call.deferUpdate(); } - } else if (state == State.Connected) { - if (core.getCallsNb() == 1) { - Log.i("[Manager] Registering phone state listener"); - mTelephonyManager.listen( - mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); - } } } @@ -421,6 +415,9 @@ public class LinphoneManager implements SensorEventListener { Log.w("[Manager] Destroying Manager"); changeStatusToOffline(); + Log.i("[Manager] Unregistering phone state listener"); + mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); + mCallManager.destroy(); mMediaScanner.destroy(); mAudioManager.destroy();