Snap for 6219119 from dad5da147b26a1c5a2d9b1a464f902ff250d3e3f to q-keystone-qcom-release
Change-Id: I43d013a806a245c994665db9ec3267f645661917
diff --git a/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java b/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java
index ec85592..e0317f6 100644
--- a/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java
+++ b/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java
@@ -117,6 +117,7 @@
boolean mRemoteControlConnected = false;
boolean mBrowsingConnected = false;
final BrowseTree mBrowseTree;
+ private boolean smActive = false;
private AvrcpPlayer mAddressedPlayer = new AvrcpPlayer();
private RemoteDevice mRemoteDevice;
private int mPreviousPercentageVol = -1;
@@ -151,6 +152,7 @@
addState(mConnected);
addState(mDisconnecting);
+ smActive = true;
mGetFolderList = new GetFolderList();
addState(mGetFolderList, mConnected);
@@ -228,7 +230,7 @@
}
synchronized void onBrowsingConnected() {
- if (mBrowsingConnected) return;
+ if (mBrowsingConnected || (!smActive)) return;
mService.sBrowseTree.mRootNode.addChild(mBrowseTree.mRootNode);
BluetoothMediaBrowserService.notifyChanged(mService
.sBrowseTree.mRootNode);
@@ -237,7 +239,7 @@
}
synchronized void onBrowsingDisconnected() {
- if (!mBrowsingConnected) return;
+ if (!mBrowsingConnected || (!smActive)) return;
mAddressedPlayer.setPlayStatus(PlaybackState.STATE_ERROR);
mAddressedPlayer.updateCurrentTrack(null);
if (mBrowseTree != null && mBrowseTree.mNowPlayingNode != null) {
@@ -799,6 +801,9 @@
// If the receiver was never registered unregister will throw an
// IllegalArgumentException.
}
+ synchronized(AvrcpControllerStateMachine.this) {
+ smActive = false;
+ }
// we should disacrd, all currently queuedup messages.
quitNow();
}