AVRCP_Browse: Update player switch to browse active
Proactively update player switch only to browse active
device (even though it's A2DP inactive device)
CRs-Fixed: 2516971
Change-Id: Ia87f654e86fcc3087f030ee12ae32faddd217bc2
diff --git a/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java b/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java
index 6a0ebc9..d001554 100644
--- a/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java
+++ b/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java
@@ -126,7 +126,6 @@
private int mPlayStatusChangedNT;
private byte mReportedPlayStatus;
private int mPlayerStatusChangeNT;
- //private int mReportedPlayStatus;
private int mTrackChangedNT;
private int mPlayPosChangedNT;
private long mSongLengthMs;
@@ -888,7 +887,6 @@
}
}
}
- //mLastLocalVolume = -1;
break;
}
@@ -2126,7 +2124,7 @@
} else {
/* playlist starts with 0 for default player*/
mediaNumber = longStringOrBlank((data.getLong(MediaMetadata.METADATA_KEY_TRACK_NUMBER) + 1L));
- }
+ }
mediaTotalNumber = longStringOrBlank(data.getLong(MediaMetadata.METADATA_KEY_NUM_TRACKS));
genre = stringOrBlank(data.getString(MediaMetadata.METADATA_KEY_GENRE));
playingTimeMs = data.getLong(MediaMetadata.METADATA_KEY_DURATION);
@@ -3321,21 +3319,15 @@
BrowsedMediaPlayer_ext player = mAvrcpBrowseManager.getBrowsedMediaPlayer(dummyaddr);
Log.w(TAG, "SetBrowsePackage for pkg " + PackageName + "svc" + browseService);
if (browseService != null && !browseService.isEmpty()) {
- BluetoothDevice active_device = null;
- for (int i = 0; i < maxAvrcpConnections; i++) {
- if (deviceFeatures[i].mCurrentDevice != null &&
- deviceFeatures[i].isActiveDevice == true) {
- Log.w(TAG,"Device " + deviceFeatures[i].mCurrentDevice.getAddress() +" active");
- active_device = deviceFeatures[i].mCurrentDevice;
- }
- }
- if (active_device != null) {
+ BluetoothDevice browse_active_device = mBrowsingActiveDevice;
+ if (browse_active_device != null) {
is_player_updated_for_browse = true;
- byte[] addr = getByteAddress(active_device);
+ byte[] addr = getByteAddress(browse_active_device);
if (mAvrcpBrowseManager.getBrowsedMediaPlayer(addr) != null) {
- mCurrentBrowsingDevice = active_device;
Log.w(TAG, "Addr Player update to Browse " + PackageName +
" already req MBS list " + mPkgRequestedMBSConnect);
+ mCurrentBrowsingDevice = browse_active_device;
+ Log.w(TAG, "Addr Player update to Browse " + PackageName);
mAvrcpBrowseManager.getBrowsedMediaPlayer(addr).
setCurrentPackage(PackageName, browseService);
if (player != null && !mPkgRequestedMBSConnect.contains(PackageName)) {
@@ -3545,8 +3537,6 @@
(Objects.equals(mDevice, deviceFeatures[index].mCurrentDevice) ||
(mDevice.isTwsPlusDevice() && device.isTwsPlusDevice()))) {
setActiveDevice(deviceFeatures[index].mCurrentDevice);
- //setActiveDevice(mDevice);
- //below line to send setAbsolute volume if device is suporting absolute volume
//When A2dp playing on DUT and Remote got connected, send proper playstatus
if (isPlayingState(mCurrentPlayerState) &&
mA2dpService.isA2dpPlaying(device)) {
@@ -3580,16 +3570,11 @@
deviceFeatures[i].mRemoteVolume = -1;
deviceFeatures[i].mLocalVolume = -1;
}
- /* Multicast scenario both abs vol supported
- Active device got disconnected so make other
- device which is left supporting absolute
- volume as active device
- */
if (deviceFeatures[i].mCurrentDevice != null && device != null &&
!(Objects.equals(deviceFeatures[i].mCurrentDevice, device))) {
Log.i(TAG,"setAvrcpDisconnectedDevice : Active device changed to index = " + i);
if (device.isTwsPlusDevice() &&
- isTwsPlusPair(device,deviceFeatures[i].mCurrentDevice )) {
+ isTwsPlusPair(device,deviceFeatures[i].mCurrentDevice)) {
Log.i(TAG,"TWS+ pair got disconnected,update absVolume");
updateAbsVolume = true;
Log.i(TAG,"TWS+ pair disconnected, set mTwsPairDisconnected for index " + i);
diff --git a/packages_apps_bluetooth_ext/src/avrcp/BrowsedMediaPlayer_ext.java b/packages_apps_bluetooth_ext/src/avrcp/BrowsedMediaPlayer_ext.java
index 5fe0028..9699379 100644
--- a/packages_apps_bluetooth_ext/src/avrcp/BrowsedMediaPlayer_ext.java
+++ b/packages_apps_bluetooth_ext/src/avrcp/BrowsedMediaPlayer_ext.java
@@ -166,6 +166,8 @@
mHandler.removeMessages(MSG_TIMEOUT, mCallbackPackageName);
Message msg = mHandler.obtainMessage(MSG_DISCONNECT_PLAYER, 0, 0, mBrowser);
mHandler.sendMessage(msg);
+ mBrowser = null;
+ return;
}
mConnState = CONNECTED;
Log.d(TAG, "mediaBrowser CONNECTED to " + mPackageName);
@@ -182,6 +184,8 @@
if ((mHandler != null) && !mBrowsablePlayerList.contains(mCallbackPackageName)
&& mHandler.hasMessages(MSG_TIMEOUT, mCallbackPackageName)) {
mHandler.removeMessages(MSG_TIMEOUT, mCallbackPackageName);
+ mBrowser = null;
+ return;
}
mConnState = DISCONNECTED;
// Remove what could be a circular dependency causing GC to never happen on this object
@@ -198,6 +202,8 @@
if ((mHandler != null) && !mBrowsablePlayerList.contains(mCallbackPackageName)
&& mHandler.hasMessages(MSG_TIMEOUT, mCallbackPackageName)) {
mHandler.removeMessages(MSG_TIMEOUT, mCallbackPackageName);
+ mBrowser = null;
+ return;
}
mBrowser = null;
mConnState = SUSPENDED;