From 420bc63ab5f15b7aed92d19c5aeb864088444353 Mon Sep 17 00:00:00 2001 From: hughchen Date: Thu, 5 Dec 2019 14:47:53 +0800 Subject: [PATCH] Use new bt api to set active device Use setActiveDevice in BluetoothAdapter instead of profiles. Fixes: 141582844 Test: manually Change-Id: I92c89b8923875ea542326e154939d93b13e66ef2 Merged-In: I92c89b8923875ea542326e154939d93b13e66ef2 --- .../android/settingslib/bluetooth/A2dpProfile.java | 11 ++++++++--- .../android/settingslib/bluetooth/HeadsetProfile.java | 9 ++++++--- .../settingslib/bluetooth/HearingAidProfile.java | 11 ++++++++--- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java index 111442aead07d..1ebe91736ba17 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java @@ -16,6 +16,7 @@ package com.android.settingslib.bluetooth; +import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_AUDIO; import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED; import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN; @@ -45,6 +46,7 @@ public class A2dpProfile implements LocalBluetoothProfile { private boolean mIsProfileReady; private final CachedBluetoothDeviceManager mDeviceManager; + private final BluetoothAdapter mBluetoothAdapter; static final ParcelUuid[] SINK_UUIDS = { BluetoothUuid.A2DP_SINK, @@ -99,7 +101,8 @@ public class A2dpProfile implements LocalBluetoothProfile { mContext = context; mDeviceManager = deviceManager; mProfileManager = profileManager; - BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new A2dpServiceListener(), + mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + mBluetoothAdapter.getProfileProxy(context, new A2dpServiceListener(), BluetoothProfile.A2DP); } @@ -158,8 +161,10 @@ public class A2dpProfile implements LocalBluetoothProfile { } public boolean setActiveDevice(BluetoothDevice device) { - if (mService == null) return false; - return mService.setActiveDevice(device); + if (mBluetoothAdapter == null) { + return false; + } + return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_AUDIO); } public BluetoothDevice getActiveDevice() { diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java index 78bffe5808c56..9dfc4d9867453 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java @@ -16,6 +16,7 @@ package com.android.settingslib.bluetooth; +import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_PHONE_CALL; import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED; import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN; @@ -45,6 +46,7 @@ public class HeadsetProfile implements LocalBluetoothProfile { private final CachedBluetoothDeviceManager mDeviceManager; private final LocalBluetoothProfileManager mProfileManager; + private final BluetoothAdapter mBluetoothAdapter; static final ParcelUuid[] UUIDS = { BluetoothUuid.HSP, @@ -99,7 +101,8 @@ public class HeadsetProfile implements LocalBluetoothProfile { LocalBluetoothProfileManager profileManager) { mDeviceManager = deviceManager; mProfileManager = profileManager; - BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new HeadsetServiceListener(), + mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + mBluetoothAdapter.getProfileProxy(context, new HeadsetServiceListener(), BluetoothProfile.HEADSET); } @@ -119,10 +122,10 @@ public class HeadsetProfile implements LocalBluetoothProfile { } public boolean setActiveDevice(BluetoothDevice device) { - if (mService == null) { + if (mBluetoothAdapter == null) { return false; } - return mService.setActiveDevice(device); + return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_PHONE_CALL); } public BluetoothDevice getActiveDevice() { diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java index 1765f499572a2..a3b68b4b90b3a 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java @@ -16,6 +16,7 @@ package com.android.settingslib.bluetooth; +import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_ALL; import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED; import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN; @@ -45,6 +46,7 @@ public class HearingAidProfile implements LocalBluetoothProfile { static final String NAME = "HearingAid"; private final LocalBluetoothProfileManager mProfileManager; + private final BluetoothAdapter mBluetoothAdapter; // Order of this profile in device profiles list private static final int ORDINAL = 1; @@ -97,7 +99,8 @@ public class HearingAidProfile implements LocalBluetoothProfile { mContext = context; mDeviceManager = deviceManager; mProfileManager = profileManager; - BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, + mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + mBluetoothAdapter.getProfileProxy(context, new HearingAidServiceListener(), BluetoothProfile.HEARING_AID); } @@ -156,8 +159,10 @@ public class HearingAidProfile implements LocalBluetoothProfile { } public boolean setActiveDevice(BluetoothDevice device) { - if (mService == null) return false; - return mService.setActiveDevice(device); + if (mBluetoothAdapter == null) { + return false; + } + return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_ALL); } public List getActiveDevices() {