Merge "Move set member pair handle from settingLib to setting" am: 41e10b86d8 am: 07ea7a3228
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1856333 Change-Id: Ie90ff7dd26035af6049246d728cd788b2bc0c032
This commit is contained in:
@@ -127,9 +127,6 @@ public class BluetoothEventManager {
|
|||||||
addHandler(BluetoothDevice.ACTION_ACL_CONNECTED, new AclStateChangedHandler());
|
addHandler(BluetoothDevice.ACTION_ACL_CONNECTED, new AclStateChangedHandler());
|
||||||
addHandler(BluetoothDevice.ACTION_ACL_DISCONNECTED, new AclStateChangedHandler());
|
addHandler(BluetoothDevice.ACTION_ACL_DISCONNECTED, new AclStateChangedHandler());
|
||||||
|
|
||||||
addHandler(BluetoothCsipSetCoordinator.ACTION_CSIS_SET_MEMBER_AVAILABLE,
|
|
||||||
new SetMemberAvailableHandler());
|
|
||||||
|
|
||||||
registerAdapterIntentReceiver();
|
registerAdapterIntentReceiver();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -515,29 +512,4 @@ public class BluetoothEventManager {
|
|||||||
dispatchAudioModeChanged();
|
dispatchAudioModeChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SetMemberAvailableHandler implements Handler {
|
|
||||||
@Override
|
|
||||||
public void onReceive(Context context, Intent intent, BluetoothDevice device) {
|
|
||||||
final String action = intent.getAction();
|
|
||||||
if (device == null) {
|
|
||||||
Log.e(TAG, "SetMemberAvailableHandler: device is null");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (action == null) {
|
|
||||||
Log.e(TAG, "SetMemberAvailableHandler: action is null");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int groupId = intent.getIntExtra(BluetoothCsipSetCoordinator.EXTRA_CSIS_GROUP_ID,
|
|
||||||
BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
|
|
||||||
if (groupId == BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
|
|
||||||
Log.e(TAG, "SetMemberAvailableHandler: Invalid group id");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mDeviceManager.onSetMemberAppear(device, groupId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -340,22 +340,24 @@ public class CachedBluetoothDeviceManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when we found a set member of a group. The function will check the {@code groupId} if
|
* Called when we found a set member of a group. The function will check the {@code groupId} if
|
||||||
* it exists and if there is a ongoing pair, the device would be ignored.
|
* it exists and the bond state of the device is BOND_NOE, and if there isn't any ongoing pair
|
||||||
|
* , and then return {@code true} to pair the device automatically.
|
||||||
*
|
*
|
||||||
* @param device The found device
|
* @param device The found device
|
||||||
* @param groupId The group id of the found device
|
* @param groupId The group id of the found device
|
||||||
|
*
|
||||||
|
* @return {@code true}, if the device should pair automatically; Otherwise, return
|
||||||
|
* {@code false}.
|
||||||
*/
|
*/
|
||||||
public synchronized void onSetMemberAppear(BluetoothDevice device, int groupId) {
|
public synchronized boolean shouldPairByCsip(BluetoothDevice device, int groupId) {
|
||||||
Log.d(TAG, "onSetMemberAppear, groupId: " + groupId + " device: " + device.toString());
|
if (mOngoingSetMemberPair != null || device.getBondState() != BluetoothDevice.BOND_NONE
|
||||||
|
|| !mCsipDeviceManager.isExistedGroupId(groupId)) {
|
||||||
if (mOngoingSetMemberPair != null) {
|
return false;
|
||||||
Log.d(TAG, "Ongoing set memberPairing in process, drop it!");
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mCsipDeviceManager.onSetMemberAppear(device, groupId)) {
|
Log.d(TAG, "Bond " + device.getName() + " by CSIP");
|
||||||
mOngoingSetMemberPair = device;
|
mOngoingSetMemberPair = device;
|
||||||
}
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -240,22 +240,15 @@ public class CsipDeviceManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when we found a set member of a group. The function will check bond state, and
|
* Check if the {@code groupId} is existed.
|
||||||
* the {@code groupId} if it exists, and then create the bond.
|
|
||||||
*
|
*
|
||||||
* @param device The found device
|
* @param groupId The group id
|
||||||
* @param groupId The group id of the found device
|
|
||||||
*
|
*
|
||||||
* @return {@code true}, if the we create bond with the device. Otherwise, return
|
* @return {@code true}, if we could find a device with this {@code groupId}; Otherwise,
|
||||||
* {@code false}.
|
* return {@code false}.
|
||||||
*/
|
*/
|
||||||
public boolean onSetMemberAppear(BluetoothDevice device, int groupId) {
|
public boolean isExistedGroupId(int groupId) {
|
||||||
if (device.getBondState() != BluetoothDevice.BOND_NONE) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getCachedDevice(groupId) != null) {
|
if (getCachedDevice(groupId) != null) {
|
||||||
device.createBond(BluetoothDevice.TRANSPORT_LE);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user