Do not call ItemCallback after disconnected

Bug: 64119114
Test: Passed MediaBrowserTest
Change-Id: Icf3283710abe7c03f4a73532b33ec2a306d2280b
This commit is contained in:
Sungsoo Lim
2017-08-03 13:36:22 +09:00
parent fca9a47ba8
commit be87b68039
2 changed files with 10 additions and 0 deletions

View File

@@ -445,6 +445,9 @@ public final class MediaBrowser {
ResultReceiver receiver = new ResultReceiver(mHandler) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
if (!isConnected()) {
return;
}
if (resultCode != 0 || resultData == null
|| !resultData.containsKey(MediaBrowserService.KEY_MEDIA_ITEM)) {
cb.onError(mediaId);

View File

@@ -700,6 +700,13 @@ public abstract class MediaBrowserService extends Service {
new Result<MediaBrowser.MediaItem>(itemId) {
@Override
void onResultSent(MediaBrowser.MediaItem item, @ResultFlags int flag) {
if (mConnections.get(connection.callbacks.asBinder()) != connection) {
if (DBG) {
Log.d(TAG, "Not sending onLoadItem result for connection that has"
+ " been disconnected. pkg=" + connection.pkg + " id=" + itemId);
}
return;
}
if ((flag & RESULT_FLAG_ON_LOAD_ITEM_NOT_IMPLEMENTED) != 0) {
receiver.send(RESULT_ERROR, null);
return;