AVRCP_Browse: fix NPE issue while check MBS connect in BrowseMediaPlayer
Add check null condition for handler while check MBS connect in BrowseMediaPlayer.
And initialize the handler thread in Avrcp start during BT On time rather than
Conditional initialization to avoid mHandler as NULL
Change-Id: I884235507e41140c6ec41c66e1bff40f0d42f927
CRs-Fixed: 2564405
diff --git a/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java b/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java
index ed3da6f..8b061ce 100644
--- a/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java
+++ b/packages_apps_bluetooth_ext/src/avrcp/Avrcp_ext.java
@@ -615,6 +615,11 @@
initMediaPlayersList();
+ BrowsedMediaPlayer_ext player =
+ mAvrcpBrowseManager.getBrowsedMediaPlayer(dummyaddr);
+ if (player != null)
+ player.start();
+
UserManager manager = UserManager.get(mContext);
if (manager == null || manager.isUserUnlocked()) {
if (DEBUG) Log.d(TAG, "User already unlocked, initializing player lists");
@@ -3976,8 +3981,6 @@
mBrowsePlayerInfoList.clear();
BrowsedMediaPlayer_ext player =
mAvrcpBrowseManager.getBrowsedMediaPlayer(dummyaddr);
- if (player != null)
- player.start();
Log.d(TAG, "buildBrowsablePlayerList " + player);
Intent intent = new Intent(android.service.media.MediaBrowserService.SERVICE_INTERFACE);
List<ResolveInfo> playerList =
diff --git a/packages_apps_bluetooth_ext/src/avrcp/BrowsedMediaPlayer_ext.java b/packages_apps_bluetooth_ext/src/avrcp/BrowsedMediaPlayer_ext.java
index 0bd00b5..d0827bb 100644
--- a/packages_apps_bluetooth_ext/src/avrcp/BrowsedMediaPlayer_ext.java
+++ b/packages_apps_bluetooth_ext/src/avrcp/BrowsedMediaPlayer_ext.java
@@ -580,13 +580,15 @@
Log.w(TAG, "Already in MBS List don't reconnect" + mBrowsablePlayerList);
return;
}
- Message msg = mHandler.obtainMessage(MSG_CONNECT_PLAYER);
- Bundle data = new Bundle();
- data.putCharSequence("package", packageName);
- data.putCharSequence("class", cls);
- msg.setData(data);
- mHandler.sendMessage(msg);
- Log.w(TAG, "Exit MSG_CONNECT_PLAYER for package = " + packageName);
+ if (mHandler != null) {
+ Message msg = mHandler.obtainMessage(MSG_CONNECT_PLAYER);
+ Bundle data = new Bundle();
+ data.putCharSequence("package", packageName);
+ data.putCharSequence("class", cls);
+ msg.setData(data);
+ mHandler.sendMessage(msg);
+ Log.w(TAG, "Exit MSG_CONNECT_PLAYER for package = " + packageName);
+ }
}
public boolean isPackageInMBSList(String packageName) {