summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzhuw <zhuw@codeaurora.org>2018-03-26 15:45:15 +0800
committerLuK1337 <priv.luk@gmail.com>2019-10-21 21:50:32 +0200
commit76459f16219514fd973ed169962095221dc15adf (patch)
treead6bb1362266b267e23b74e9f34e049782066597
parent1bbe43b15b209c894a92be338685082bdd5799c6 (diff)
downloadandroid_packages_apps_Gallery2-76459f16219514fd973ed169962095221dc15adf.tar.gz
android_packages_apps_Gallery2-76459f16219514fd973ed169962095221dc15adf.tar.bz2
android_packages_apps_Gallery2-76459f16219514fd973ed169962095221dc15adf.zip
Fix can't enable speaker with bluetooth headset
config value is 10 when using bt headset Change-Id: Ie8b817af291d07270ffed9cdbcd200515bb3599f
-rw-r--r--gallerycommon/src/com/android/gallery3d/common/ApiHelper.java3
-rw-r--r--src/org/codeaurora/gallery3d/video/SpeakerHooker.java25
2 files changed, 22 insertions, 6 deletions
diff --git a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
index da36f9d4e..e169338c2 100644
--- a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
+++ b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
@@ -369,7 +369,8 @@ public class ApiHelper {
public static class AudioSystem {
public static final int FORCE_NONE = 0;
- public static final int FORCE_SPEAKER = 1;
+ public static final int FORCE_SPEAKER_HEADSET = 1;
+ public static final int FORCE_SPEAKER_BT = 10;
public static final int FOR_MEDIA = 1;
diff --git a/src/org/codeaurora/gallery3d/video/SpeakerHooker.java b/src/org/codeaurora/gallery3d/video/SpeakerHooker.java
index 912de96a5..c2aebd720 100644
--- a/src/org/codeaurora/gallery3d/video/SpeakerHooker.java
+++ b/src/org/codeaurora/gallery3d/video/SpeakerHooker.java
@@ -28,8 +28,10 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.codeaurora.gallery3d.video;
+import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -154,7 +156,7 @@ public class SpeakerHooker extends MovieHooker {
if (isSpeakerOn()) {
turnSpeakerOff();
} else {
- if (mIsHeadsetOn) {
+ if (mIsHeadsetOn || isBtHeadsetConnected()) {
turnSpeakerOn();
} else {
Toast.makeText(getContext(), getContext().getString(R.string.speaker_need_headset),
@@ -164,12 +166,25 @@ public class SpeakerHooker extends MovieHooker {
updateSpeakerButton();
}
+ private boolean isBtHeadsetConnected() {
+ BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+ if (adapter != null) {
+ if (BluetoothProfile.STATE_CONNECTED ==
+ adapter.getProfileConnectionState(BluetoothProfile.HEADSET) ||
+ BluetoothProfile.STATE_CONNECTED ==
+ adapter.getProfileConnectionState(BluetoothProfile.A2DP)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private void turnSpeakerOn() {
if (mAudioManager == null) {
initAudioManager();
}
- AudioSystem.setForceUse(AudioSystem.FOR_MEDIA,
- AudioSystem.FORCE_SPEAKER);
+ AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, isBtHeadsetConnected() ?
+ AudioSystem.FORCE_SPEAKER_BT : AudioSystem.FORCE_SPEAKER_HEADSET);
}
private void turnSpeakerOff() {
@@ -198,8 +213,8 @@ public class SpeakerHooker extends MovieHooker {
}
private boolean isSpeakerOn() {
- return (AudioSystem.FORCE_SPEAKER
- == AudioSystem.getForceUse(AudioSystem.FOR_MEDIA));
+ return (AudioSystem.FORCE_SPEAKER_HEADSET == AudioSystem.getForceUse(AudioSystem.FOR_MEDIA)
+ || AudioSystem.FORCE_SPEAKER_BT == AudioSystem.getForceUse(AudioSystem.FOR_MEDIA));
}
}