diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 5bd7366bd..3551088b3 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -19,9 +19,6 @@ - - - diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml index c427191b4..addb17547 100644 --- a/res/values/non_localizable_strings.xml +++ b/res/values/non_localizable_strings.xml @@ -47,7 +47,6 @@ first_launch_suceeded_once_key pref_wifi_only_key - pref_use_bluetooth_if_available_key pref_video_use_front_camera_key pref_video_codec_h263_key diff --git a/res/values/strings.xml b/res/values/strings.xml index 736abc9d5..328882306 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -237,8 +237,6 @@ SIP Accounts Use wifi only - Use bluetooth headset - Route incoming audio to bluetooth headset if available. An error occurred, try again later. Server unreachable, verify your internet connection. diff --git a/res/xml-v14/preferences.xml b/res/xml-v14/preferences.xml index 1c34388fb..beb8bb201 100644 --- a/res/xml-v14/preferences.xml +++ b/res/xml-v14/preferences.xml @@ -58,14 +58,6 @@ - - - - @@ -146,7 +142,7 @@ android:title="@string/pref_escape_plus"> + android:title="@string/pref_debug" android:defaultValue="false"> diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index f24e9cdc2..9c4059f26 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -49,7 +49,6 @@ import java.util.TimerTask; import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener; import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener.AudioState; import org.linphone.LinphoneSimpleListener.LinphoneServiceListener; -import org.linphone.compatibility.Compatibility; import org.linphone.core.CallDirection; import org.linphone.core.LinphoneAddress; import org.linphone.core.LinphoneAuthInfo; @@ -196,37 +195,33 @@ public final class LinphoneManager implements LinphoneCoreListener { private BroadcastReceiver mKeepAliveReceiver = new KeepAliveReceiver(); private native void hackSpeakerState(boolean speakerOn); - private static void sRouteAudioToSpeakerOrBluetoothHelper(boolean speakerOn) { - getInstance().routeAudioToSpeakerOrBluetoothHelper(speakerOn); + private static void sRouteAudioToSpeakerHelperHelper(boolean speakerOn) { + getInstance().routeAudioToSpeakerHelperHelper(speakerOn); } @SuppressWarnings("deprecation") - private void routeAudioToSpeakerOrBluetoothHelper(boolean speakerOn) { + private void routeAudioToSpeakerHelperHelper(boolean speakerOn) { boolean different = isSpeakerOn() ^ speakerOn; if (!different) { Log.d("Skipping change audio route by the same route ", speakerOn ? "speaker" : "earpiece"); return; } - if (mPref.getBoolean(getString(R.string.pref_use_bluetooth_if_available), true) && Compatibility.enableBluetoothHeadset(mAudioManager)) { - return; + if (Hacks.needGalaxySAudioHack() || sLPref.useGalaxySHack()) + setAudioModeIncallForGalaxyS(); + + if (sLPref.useSpecificAudioModeHack() != -1) + mAudioManager.setMode(sLPref.useSpecificAudioModeHack()); + + if (Hacks.needRoutingAPI() || sLPref.useAudioRoutingAPIHack()) { + mAudioManager.setRouting( + MODE_NORMAL, + speakerOn? ROUTE_SPEAKER : ROUTE_EARPIECE, + AudioManager.ROUTE_ALL); } else { - if (Hacks.needGalaxySAudioHack() || sLPref.useGalaxySHack()) - setAudioModeIncallForGalaxyS(); - - if (sLPref.useSpecificAudioModeHack() != -1) - mAudioManager.setMode(sLPref.useSpecificAudioModeHack()); - - if (Hacks.needRoutingAPI() || sLPref.useAudioRoutingAPIHack()) { - mAudioManager.setRouting( - MODE_NORMAL, - speakerOn? ROUTE_SPEAKER : ROUTE_EARPIECE, - AudioManager.ROUTE_ALL); - } else { - mAudioManager.setSpeakerphoneOn(speakerOn); - } - for (LinphoneOnAudioChangedListener listener : getSimpleListeners(LinphoneOnAudioChangedListener.class)) { - listener.onAudioStateChanged(speakerOn ? AudioState.SPEAKER : AudioState.EARPIECE); - } + mAudioManager.setSpeakerphoneOn(speakerOn); + } + for (LinphoneOnAudioChangedListener listener : getSimpleListeners(LinphoneOnAudioChangedListener.class)) { + listener.onAudioStateChanged(speakerOn ? AudioState.SPEAKER : AudioState.EARPIECE); } } private synchronized void routeAudioToSpeakerHelper(boolean speakerOn) { @@ -235,7 +230,7 @@ public final class LinphoneManager implements LinphoneCoreListener { Log.d("Hack to have speaker=",speakerOn," while on call"); hackSpeakerState(speakerOn); } else { - routeAudioToSpeakerOrBluetoothHelper(speakerOn); + routeAudioToSpeakerHelperHelper(speakerOn); } } @@ -642,7 +637,7 @@ public final class LinphoneManager implements LinphoneCoreListener { public void initFromConf() throws LinphoneConfigException { - + LinphoneCoreFactory.instance().setDebugMode(getPrefBoolean(R.string.pref_debug_key,true)); initFromConfTunnel(); if (initialTransports == null) diff --git a/src/org/linphone/PreferencesActivity.java b/src/org/linphone/PreferencesActivity.java index ea0561093..c37b75159 100644 --- a/src/org/linphone/PreferencesActivity.java +++ b/src/org/linphone/PreferencesActivity.java @@ -28,7 +28,6 @@ import static org.linphone.R.string.pref_echo_cancellation_key; import static org.linphone.R.string.pref_echo_canceller_calibration_key; import static org.linphone.R.string.pref_echo_limiter_key; import static org.linphone.R.string.pref_media_encryption_key; -import static org.linphone.R.string.pref_use_bluetooth_if_available_key; import static org.linphone.R.string.pref_video_enable_key; import java.util.ArrayList; @@ -259,10 +258,6 @@ public class PreferencesActivity extends LinphonePreferencesActivity implements //findPreference(pref_codec_speex32_key)).setEnabled(enableIlbc); } findPreference(pref_echo_limiter_key).setEnabled(true); - - if (!Version.sdkAboveOrEqual(8)) { - uncheckAndDisableCheckbox(pref_use_bluetooth_if_available_key); - } initializeMediaEncryptionPreferences(); diff --git a/src/org/linphone/compatibility/ApiEightPlus.java b/src/org/linphone/compatibility/ApiEightPlus.java index ae460e11d..b5c5df28b 100644 --- a/src/org/linphone/compatibility/ApiEightPlus.java +++ b/src/org/linphone/compatibility/ApiEightPlus.java @@ -1,7 +1,6 @@ package org.linphone.compatibility; import android.annotation.TargetApi; -import android.media.AudioManager; import android.view.Display; /* @@ -31,14 +30,4 @@ public class ApiEightPlus { public static int getRotation(Display display) { return display.getRotation(); } - - public static boolean enableBluetoothHeadset(AudioManager mAudioManager) { - if (mAudioManager.isBluetoothScoAvailableOffCall()){ - mAudioManager.setBluetoothScoOn(true); - mAudioManager.setMode(AudioManager.MODE_IN_CALL); - mAudioManager.startBluetoothSco(); - return true; - } - return false; - } } diff --git a/src/org/linphone/compatibility/Compatibility.java b/src/org/linphone/compatibility/Compatibility.java index 55e2af8ca..f6a61efbe 100644 --- a/src/org/linphone/compatibility/Compatibility.java +++ b/src/org/linphone/compatibility/Compatibility.java @@ -36,6 +36,7 @@ import android.media.AudioManager; import android.net.Uri; import android.preference.Preference; import android.view.Display; +import android.view.Window; /** * @author Sylvain Berfini */ @@ -180,12 +181,6 @@ public class Compatibility { return null; } - public static boolean enableBluetoothHeadset(AudioManager mAudioManager) { - if (Version.sdkAboveOrEqual(8)) { - return ApiEightPlus.enableBluetoothHeadset(mAudioManager); - } - return false; - } public static void setPreferenceChecked(Preference preference, boolean checked) { if (Version.sdkAboveOrEqual(14)) { diff --git a/submodules/linphone b/submodules/linphone index e1c3d22d2..dc5b821d2 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit e1c3d22d293f41702dc1e26aaa366a3e607c10a9 +Subproject commit dc5b821d22ae39eda6a5c448a3f9e35e8b81f008