From c4f1c047cac65073a34916c818923c70ed3d17d7 Mon Sep 17 00:00:00 2001 From: michaelkatz Date: Fri, 2 Dec 2022 10:19:40 +0000 Subject: [PATCH] Added cancellation check for MediaBrowserFuture in demo session app When app is deployed with device's screen being off, MainActivity's onStart is called swiftly by its onStop. The onStop method cancels the browserFuture task which in turn "completes" the task. Upon task "completion", pushRoot() runs and then throws error as it calls get() a cancelled task. PiperOrigin-RevId: 492416445 (cherry picked from commit 64603cba8db9fbd9615e19701464c4d0734a86dc) --- .../src/main/java/androidx/media3/demo/session/MainActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/session/src/main/java/androidx/media3/demo/session/MainActivity.kt b/demos/session/src/main/java/androidx/media3/demo/session/MainActivity.kt index 0e7694dc03..810a6ac9b7 100644 --- a/demos/session/src/main/java/androidx/media3/demo/session/MainActivity.kt +++ b/demos/session/src/main/java/androidx/media3/demo/session/MainActivity.kt @@ -38,7 +38,7 @@ import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var browserFuture: ListenableFuture private val browser: MediaBrowser? - get() = if (browserFuture.isDone) browserFuture.get() else null + get() = if (browserFuture.isDone && !browserFuture.isCancelled) browserFuture.get() else null private lateinit var mediaListAdapter: FolderMediaItemArrayAdapter private lateinit var mediaListView: ListView