summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sungsoo Lim <sungsoo@google.com> 2017-08-04 00:21:27 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-08-04 00:21:27 +0000
commit8724fb9348c4dd0057da0056a2d4a6ec4c05954c (patch)
treee6892c3147d5d1b310dead656cb8311e28a10f5e
parent437e43ed1fb842644adffd4d3bb9a4d30bff5e13 (diff)
parentbe87b6803901e9ed2701935300801c3eb2ef629c (diff)
Merge "Do not call ItemCallback after disconnected" into oc-mr1-dev
-rw-r--r--media/java/android/media/browse/MediaBrowser.java3
-rw-r--r--media/java/android/service/media/MediaBrowserService.java7
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;