diff --git a/AndroidManifest.xml b/AndroidManifest.xml index e8db8282e..2ba3b22af 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -19,9 +19,6 @@ - - - diff --git a/res/drawable-hdpi/setup_mark.png b/res/drawable-hdpi/setup_mark.png new file mode 100644 index 000000000..71504e74b Binary files /dev/null and b/res/drawable-hdpi/setup_mark.png differ diff --git a/res/drawable-mdpi/setup_mark.png b/res/drawable-mdpi/setup_mark.png new file mode 100644 index 000000000..5d63f8547 Binary files /dev/null and b/res/drawable-mdpi/setup_mark.png differ diff --git a/res/drawable/list_selector.xml b/res/drawable/list_selector.xml index 6d70448b8..1cfc68647 100644 --- a/res/drawable/list_selector.xml +++ b/res/drawable/list_selector.xml @@ -1,6 +1,7 @@ - diff --git a/res/layout/chatlist.xml b/res/layout/chatlist.xml index c671c3a91..103f35762 100644 --- a/res/layout/chatlist.xml +++ b/res/layout/chatlist.xml @@ -45,7 +45,6 @@ + + + + + + + + @@ -23,8 +50,9 @@ android:contentDescription="@string/content_description_cancel" android:id="@+id/setup_cancel" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:src="@drawable/setup_cancel" + android:adjustViewBounds="true" android:scaleType="fitXY" android:layout_weight="0.5"/> @@ -32,8 +60,9 @@ android:contentDescription="@string/content_description_next" android:id="@+id/setup_next" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:src="@drawable/setup_next" + android:adjustViewBounds="true" android:scaleType="fitXY" android:layout_weight="0.5"/> @@ -42,8 +71,9 @@ android:id="@+id/setup_back" android:visibility="gone" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:src="@drawable/setup_back" + android:adjustViewBounds="true" android:scaleType="fitXY" android:layout_weight="0.5"/> diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml index 0c92b2e4a..c2c127d1e 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 7c7279028..6b154441c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -239,8 +239,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 72f417abc..b8d3a8c3e 100644 --- a/res/xml-v14/preferences.xml +++ b/res/xml-v14/preferences.xml @@ -66,14 +66,6 @@ - - - - @@ -149,7 +145,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 069322d6e..d74746580 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 55bc559b0..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,15 +181,9 @@ 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(8)) { + if (Version.sdkAboveOrEqual(14)) { ApiFourteenPlus.setPreferenceChecked(preference, checked); } else { ApiFivePlus.setPreferenceChecked(preference, checked); @@ -196,7 +191,7 @@ public class Compatibility { } public static boolean isPreferenceChecked(Preference preference) { - if (Version.sdkAboveOrEqual(8)) { + if (Version.sdkAboveOrEqual(14)) { return ApiFourteenPlus.isPreferenceChecked(preference); } else { return ApiFivePlus.isPreferenceChecked(preference); 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