diff --git a/src/android/org/linphone/HookReceiver.java b/src/android/org/linphone/HookReceiver.java index b62967e53..a5068ffbe 100644 --- a/src/android/org/linphone/HookReceiver.java +++ b/src/android/org/linphone/HookReceiver.java @@ -18,7 +18,8 @@ public class HookReceiver extends BroadcastReceiver { //handset on Log.i(" ======>>>>>> HookReceiver - handset ON"); LinphoneManager.getLc().enableSpeaker(false); - LinphoneManager.getInstance().setHandsetMode(true); + if(!LinphoneManager.getInstance().isHansetModeOn()) + LinphoneManager.getInstance().setHandsetMode(true); }else{ diff --git a/src/android/org/linphone/LinphoneManager.java b/src/android/org/linphone/LinphoneManager.java index 1a6bf8384..1d72f70be 100644 --- a/src/android/org/linphone/LinphoneManager.java +++ b/src/android/org/linphone/LinphoneManager.java @@ -163,6 +163,7 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag private SensorManager mSensorManager; private Sensor mProximity; private boolean mProximitySensingEnabled; + private boolean handsetON = false; public String wizardLoginViewDomain = null; @@ -854,18 +855,25 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag protected void setHandsetMode(Boolean on){ if(mLc.isInComingInvitePending() && on){ + handsetON = true; try { mLc.acceptCall(mLc.getCurrentCall()); LinphoneActivity.instance().startIncallActivity(mLc.getCurrentCall()); }catch(LinphoneCoreException e){} }else if(on && CallActivity.isInstanciated()){ + handsetON = true; CallActivity.instance().setSpeakerEnabled(true); CallActivity.instance().refreshInCallActions(); }else if (!on){ + handsetON = false; LinphoneManager.getInstance().terminateCall(); } } + protected boolean isHansetModeOn(){ + return handsetON; + } + private void copyAssetsFromPackage() throws IOException { copyIfNotExist(R.raw.notes_of_the_optimistic, mRingSoundFile); copyIfNotExist(R.raw.ringback, mRingbackSoundFile); diff --git a/src/android/org/linphone/SettingsFragment.java b/src/android/org/linphone/SettingsFragment.java index 6f64675c4..e5d2b873a 100644 --- a/src/android/org/linphone/SettingsFragment.java +++ b/src/android/org/linphone/SettingsFragment.java @@ -409,7 +409,7 @@ public class SettingsFragment extends PreferencesListFragment { if (value.toString().equals(getString(R.string.media_encryption_srtp))) key = getString(R.string.pref_media_encryption_key_srtp); else if (value.toString().equals(getString(R.string.media_encryption_zrtp))) - key = getString(R.string.pref_media_encryption_key_zrtp); + key = getString(R.string.pref_media_encryption_key_0zrtp); else if (value.toString().equals(getString(R.string.media_encryption_dtls))) key = getString(R.string.pref_media_encryption_key_dtls); pref.setValue(key);