diff options
| author | 2017-08-04 00:21:27 +0000 | |
|---|---|---|
| committer | 2017-08-04 00:21:27 +0000 | |
| commit | 8724fb9348c4dd0057da0056a2d4a6ec4c05954c (patch) | |
| tree | e6892c3147d5d1b310dead656cb8311e28a10f5e | |
| parent | 437e43ed1fb842644adffd4d3bb9a4d30bff5e13 (diff) | |
| parent | be87b6803901e9ed2701935300801c3eb2ef629c (diff) | |
Merge "Do not call ItemCallback after disconnected" into oc-mr1-dev
| -rw-r--r-- | media/java/android/media/browse/MediaBrowser.java | 3 | ||||
| -rw-r--r-- | media/java/android/service/media/MediaBrowserService.java | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/media/java/android/media/browse/MediaBrowser.java b/media/java/android/media/browse/MediaBrowser.java index ece19e46e479..90531c33f5ce 100644 --- a/media/java/android/media/browse/MediaBrowser.java +++ b/media/java/android/media/browse/MediaBrowser.java @@ -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); diff --git a/media/java/android/service/media/MediaBrowserService.java b/media/java/android/service/media/MediaBrowserService.java index b52906ddd1ae..4df645dc7b2f 100644 --- a/media/java/android/service/media/MediaBrowserService.java +++ b/media/java/android/service/media/MediaBrowserService.java @@ -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; |