diff options
| author | Jaikumar Ganesh <jaikumar@google.com> | 2009-12-21 14:19:43 -0800 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-12-21 14:19:43 -0800 |
| commit | 1aa2559797d49fa0c6cf7885c9fed5797e42231f (patch) | |
| tree | c9c3d976709f5285ca11dbbc970b7f991f1edebf | |
| parent | 186b94fe60a4cede177bace19b68c72c6f475190 (diff) | |
| parent | 87ed10d78d290f48d382a6e628241da0c61cfb45 (diff) | |
| download | frameworks_base-1aa2559797d49fa0c6cf7885c9fed5797e42231f.zip frameworks_base-1aa2559797d49fa0c6cf7885c9fed5797e42231f.tar.gz frameworks_base-1aa2559797d49fa0c6cf7885c9fed5797e42231f.tar.bz2 | |
am 87ed10d7: Merge change I577dd1f3 into eclair
Merge commit '87ed10d78d290f48d382a6e628241da0c61cfb45' into eclair-plus-aosp
* commit '87ed10d78d290f48d382a6e628241da0c61cfb45':
Accept incoming connections if no other sink is in NonDisconnecting state.
| -rw-r--r-- | core/java/android/server/BluetoothEventLoop.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index 0d0d245..b28cf43 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -21,14 +21,15 @@ import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothClass; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothUuid; -import android.os.ParcelUuid; import android.content.Context; import android.content.Intent; import android.os.Handler; import android.os.Message; +import android.os.ParcelUuid; import android.util.Log; import java.util.HashMap; +import java.util.Set; /** * TODO: Move this to @@ -553,7 +554,7 @@ class BluetoothEventLoop { if (mBluetoothService.isEnabled() && (BluetoothUuid.isAudioSource(uuid) || BluetoothUuid.isAvrcpTarget(uuid) || BluetoothUuid.isAdvAudioDist(uuid)) && - (a2dp.getNonDisconnectedSinks().size() == 0)) { + !isOtherSinkInNonDisconnectingState(address)) { BluetoothDevice device = mAdapter.getRemoteDevice(address); authorized = a2dp.getSinkPriority(device) > BluetoothA2dp.PRIORITY_OFF; if (authorized) { @@ -568,6 +569,16 @@ class BluetoothEventLoop { return authorized; } + boolean isOtherSinkInNonDisconnectingState(String address) { + BluetoothA2dp a2dp = new BluetoothA2dp(mContext); + Set<BluetoothDevice> devices = a2dp.getNonDisconnectedSinks(); + if (devices.size() == 0) return false; + for(BluetoothDevice dev: devices) { + if (!dev.getAddress().equals(address)) return true; + } + return false; + } + private void onAgentCancel() { Intent intent = new Intent(BluetoothDevice.ACTION_PAIRING_CANCEL); mContext.sendBroadcast(intent, BLUETOOTH_ADMIN_PERM); |
