From 52785e27584785f2826142469b17d440e82ded56 Mon Sep 17 00:00:00 2001 From: xianming wang Date: Thu, 19 Sep 2019 15:20:17 +0800 Subject: SnapdragonGallery: Set NO_BT_A2DP when connected BT headset Set FORCE_NO_BT_A2DP when connected BT headset and click the Speaker ON. CRs-Fixed: 2530845 Change-Id: I9343566b9454765536dd17aa0f2b66bcb803770a --- .../com/android/gallery3d/common/ApiHelper.java | 1 + .../codeaurora/gallery3d/video/SpeakerHooker.java | 25 +++++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) mode change 100644 => 100755 gallerycommon/src/com/android/gallery3d/common/ApiHelper.java mode change 100644 => 100755 src/org/codeaurora/gallery3d/video/SpeakerHooker.java diff --git a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java old mode 100644 new mode 100755 index da36f9d4e..4b8d961d2 --- a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java +++ b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java @@ -370,6 +370,7 @@ 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_NO_BT_A2DP = 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 old mode 100644 new mode 100755 index 912de96a5..3ba641ec7 --- a/src/org/codeaurora/gallery3d/video/SpeakerHooker.java +++ b/src/org/codeaurora/gallery3d/video/SpeakerHooker.java @@ -51,7 +51,7 @@ public class SpeakerHooker extends MovieHooker { private MenuItem mMenuSpeakerButton; - private boolean mIsHeadsetOn = false; + private static boolean mIsHeadsetOn = false; @Override public void onCreate(Bundle savedInstanceState) { @@ -154,7 +154,12 @@ public class SpeakerHooker extends MovieHooker { if (isSpeakerOn()) { turnSpeakerOff(); } else { - if (mIsHeadsetOn) { + if (mAudioManager == null) { + initAudioManager(); + } + boolean isBluetoothOn = mAudioManager.isBluetoothA2dpOn() || + mAudioManager.isBluetoothScoOn(); + if (mIsHeadsetOn || isBluetoothOn) { turnSpeakerOn(); } else { Toast.makeText(getContext(), getContext().getString(R.string.speaker_need_headset), @@ -168,8 +173,16 @@ public class SpeakerHooker extends MovieHooker { if (mAudioManager == null) { initAudioManager(); } - AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, - AudioSystem.FORCE_SPEAKER); + boolean isBluetoothOn = mAudioManager.isBluetoothA2dpOn() || + mAudioManager.isBluetoothScoOn(); + if (isBluetoothOn) { + AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, + AudioSystem.FORCE_NO_BT_A2DP); + } else { + AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, + AudioSystem.FORCE_SPEAKER); + + } } private void turnSpeakerOff() { @@ -199,7 +212,9 @@ public class SpeakerHooker extends MovieHooker { private boolean isSpeakerOn() { return (AudioSystem.FORCE_SPEAKER - == AudioSystem.getForceUse(AudioSystem.FOR_MEDIA)); + == AudioSystem.getForceUse(AudioSystem.FOR_MEDIA)) || + (AudioSystem.FORCE_NO_BT_A2DP + == AudioSystem.getForceUse(AudioSystem.FOR_MEDIA)); } } -- cgit v1.2.3