From 5b84490a298df63817065578e41df30818a3ce36 Mon Sep 17 00:00:00 2001 From: Beth Thibodeau Date: Fri, 26 Jun 2020 17:18:20 -0400 Subject: [PATCH] Add null checks to browser callbacks There were reports with a couple crashes in testConnection due to a race condition where we've disconnected the browser before the callback completed. In that event we should consider it an error state. Fixes: 159961110 Test: atest Change-Id: I4fc58ad9ac39e4264ff52c05ff0aeab4e26b3638 --- .../com/android/systemui/media/ResumeMediaBrowser.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/media/ResumeMediaBrowser.java b/packages/SystemUI/src/com/android/systemui/media/ResumeMediaBrowser.java index 1842564a4574c..68b6785849aa9 100644 --- a/packages/SystemUI/src/com/android/systemui/media/ResumeMediaBrowser.java +++ b/packages/SystemUI/src/com/android/systemui/media/ResumeMediaBrowser.java @@ -94,7 +94,7 @@ public class ResumeMediaBrowser { // a request with EXTRA_RECENT; if they don't, no resume controls MediaBrowser.MediaItem child = children.get(0); MediaDescription desc = child.getDescription(); - if (child.isPlayable()) { + if (child.isPlayable() && mMediaBrowser != null) { mCallback.addTrack(desc, mMediaBrowser.getServiceComponent(), ResumeMediaBrowser.this); } else { @@ -129,7 +129,7 @@ public class ResumeMediaBrowser { @Override public void onConnected() { Log.d(TAG, "Service connected for " + mComponentName); - if (mMediaBrowser.isConnected()) { + if (mMediaBrowser != null && mMediaBrowser.isConnected()) { String root = mMediaBrowser.getRoot(); if (!TextUtils.isEmpty(root)) { mCallback.onConnected(); @@ -187,7 +187,7 @@ public class ResumeMediaBrowser { @Override public void onConnected() { Log.d(TAG, "Connected for restart " + mMediaBrowser.isConnected()); - if (!mMediaBrowser.isConnected()) { + if (mMediaBrowser == null || !mMediaBrowser.isConnected()) { mCallback.onError(); return; } @@ -246,7 +246,7 @@ public class ResumeMediaBrowser { @Override public void onConnected() { Log.d(TAG, "connected"); - if (!mMediaBrowser.isConnected() + if (mMediaBrowser == null || !mMediaBrowser.isConnected() || TextUtils.isEmpty(mMediaBrowser.getRoot())) { mCallback.onError(); } else {