From 2096f2730d663b0b822132f43d32a71a28f28a5b Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Fri, 5 Jan 2018 15:38:34 +0100 Subject: [PATCH] Merging commit from closed #172 pull request and fixed it --- src/android/org/linphone/CallActivity.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/android/org/linphone/CallActivity.java b/src/android/org/linphone/CallActivity.java index e81163051..7f7f7cef0 100644 --- a/src/android/org/linphone/CallActivity.java +++ b/src/android/org/linphone/CallActivity.java @@ -132,6 +132,8 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList private HashMap mEncoderTexts; private HashMap mDecoderTexts; + private boolean oldIsSpeakerEnabled = false; + public static CallActivity instance() { return instance; } @@ -1255,6 +1257,8 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList LinphoneManager.getInstance().changeStatusToOnline(); LinphoneManager.getInstance().enableProximitySensing(false); + unregisterReceiver(headsetReceiver); + if (mControlsHandler != null && mControls != null) { mControlsHandler.removeCallbacks(mControls); } @@ -1766,13 +1770,15 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList if (intent.hasExtra("state")) { switch (intent.getIntExtra("state", 0)) { case 0: - LinphoneManager.getInstance().routeAudioToSpeaker(); - isSpeakerEnabled = true; - speaker.setEnabled(true); - refreshInCallActions(); + if (oldIsSpeakerEnabled) { + LinphoneManager.getInstance().routeAudioToSpeaker(); + isSpeakerEnabled = true; + speaker.setEnabled(true); + } break; case 1: LinphoneManager.getInstance().routeAudioToReceiver(); + oldIsSpeakerEnabled = isSpeakerEnabled; isSpeakerEnabled = false; speaker.setEnabled(false); break;