diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml
index c8ae1603a..76335ea7e 100644
--- a/res/values/non_localizable_custom.xml
+++ b/res/values/non_localizable_custom.xml
@@ -71,6 +71,7 @@
false
true
true
+ false
false
diff --git a/src/org/linphone/DialerFragment.java b/src/org/linphone/DialerFragment.java
index a40bc3f58..279ee6c61 100644
--- a/src/org/linphone/DialerFragment.java
+++ b/src/org/linphone/DialerFragment.java
@@ -141,11 +141,6 @@ public class DialerFragment extends Fragment {
LinphoneActivity.instance().showStatusBar();
}
- // Force speaker for tablets
- LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
- if (lc != null)
- lc.enableSpeaker(getResources().getBoolean(R.bool.isTablet));
-
if (shouldEmptyAddressField) {
mAddress.setText("");
} else {
diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java
index 7cca6416a..242ede6ca 100644
--- a/src/org/linphone/LinphoneManager.java
+++ b/src/org/linphone/LinphoneManager.java
@@ -199,12 +199,7 @@ public class LinphoneManager implements LinphoneCoreListener {
Log.w("Routing audio to " + (speakerOn ? "speaker" : "earpiece") + ", disabling bluetooth audio route");
BluetoothManager.getInstance().disableBluetoothSCO();
- if (!speakerOn) {
- mLc.enableSpeaker(false);
- } else {
- mLc.enableSpeaker(true);
- }
-
+ mLc.enableSpeaker(speakerOn);
audioStateChanged(speakerOn ? AudioState.SPEAKER : AudioState.EARPIECE);
}
@@ -528,7 +523,11 @@ public class LinphoneManager implements LinphoneCoreListener {
Log.e(e, "cannot get version name");
}
- mLc.setRing(null);
+ if (mR.getBoolean(R.bool.use_linphonecore_ringing)) {
+ disableRinging();
+ } else {
+ mLc.setRing(null);
+ }
mLc.setRootCA(mLinphoneRootCaFile);
mLc.setPlayFile(mPauseSoundFile);
mLc.setChatDatabasePath(mChatDatabaseFile);
@@ -996,6 +995,7 @@ public class LinphoneManager implements LinphoneCoreListener {
private synchronized void startRinging() {
if (disableRinging) {
+ routeAudioToSpeaker();
return;
}