diff --git a/src/android/org/linphone/CallActivity.java b/src/android/org/linphone/CallActivity.java index 0e14525fe..0fea400b9 100644 --- a/src/android/org/linphone/CallActivity.java +++ b/src/android/org/linphone/CallActivity.java @@ -803,7 +803,9 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList private void showAudioView() { if (LinphoneManager.getLc().getCurrentCall() != null) { - LinphoneManager.getInstance().enableProximitySensing(true); + if (!isSpeakerEnabled) { + LinphoneManager.getInstance().enableProximitySensing(true); + } } replaceFragmentVideoByAudio(); displayAudioCall(); @@ -886,6 +888,9 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList protected void toggleSpeaker() { isSpeakerEnabled = !isSpeakerEnabled; + if (LinphoneManager.getLc().getCurrentCall() != null) { + LinphoneManager.getInstance().enableProximitySensing(!isSpeakerEnabled); + } if (isSpeakerEnabled) { LinphoneManager.getInstance().routeAudioToSpeaker(); speaker.setImageResource(R.drawable.speaker_selected); @@ -1182,8 +1187,10 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList } if (!isVideoEnabled(LinphoneManager.getLc().getCurrentCall())) { - LinphoneManager.getInstance().enableProximitySensing(true); - removeCallbacks(); + if (!isSpeakerEnabled) { + LinphoneManager.getInstance().enableProximitySensing(true); + removeCallbacks(); + } } } diff --git a/src/android/org/linphone/LinphoneActivity.java b/src/android/org/linphone/LinphoneActivity.java index cbeb043bd..b19755f60 100644 --- a/src/android/org/linphone/LinphoneActivity.java +++ b/src/android/org/linphone/LinphoneActivity.java @@ -31,6 +31,7 @@ import java.util.List; import org.linphone.SettingsFragment; import org.linphone.LinphoneManager.AddressType; +import org.linphone.LinphoneService; import org.linphone.assistant.AssistantActivity; import org.linphone.assistant.RemoteProvisioningLoginActivity; import org.linphone.compatibility.Compatibility; @@ -1345,6 +1346,9 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); if (lc != null) { lc.addListener(mListener); + if (!LinphoneService.instance().displayServiceNotification()) { + lc.refreshRegisters(); + } } if (isTablet()) { diff --git a/src/android/org/linphone/LinphoneManager.java b/src/android/org/linphone/LinphoneManager.java index a6baed865..caad355cd 100644 --- a/src/android/org/linphone/LinphoneManager.java +++ b/src/android/org/linphone/LinphoneManager.java @@ -1383,8 +1383,6 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag if (state == State.Connected) { if (mLc.getCallsNb() == 1) { - //Enabling proximity sensor - enableProximitySensing(true); //It is for incoming calls, because outgoing calls enter MODE_IN_COMMUNICATION immediately when they start. //However, incoming call first use the MODE_RINGING to play the local ring. if(call.getDirection() == CallDirection.Incoming) { @@ -1446,7 +1444,6 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag setAudioManagerInCallMode(); requestAudioFocus(STREAM_VOICE_CALL); startBluetooth(); - enableProximitySensing(true); } if (state == State.StreamsRunning) { diff --git a/src/android/org/linphone/LinphoneService.java b/src/android/org/linphone/LinphoneService.java index f20327315..f9e139640 100644 --- a/src/android/org/linphone/LinphoneService.java +++ b/src/android/org/linphone/LinphoneService.java @@ -264,7 +264,7 @@ public final class LinphoneService extends Service { mMsgNotifCount = 0; } - private boolean displayServiceNotification() { + public boolean displayServiceNotification() { return LinphonePreferences.instance().getServiceNotificationVisibility(); }