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)
This commit is contained in:
michaelkatz 2022-12-02 10:19:40 +00:00 committed by christosts
parent 8618263b99
commit c4f1c047ca

View File

@ -38,7 +38,7 @@ import com.google.common.util.concurrent.ListenableFuture
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
private lateinit var browserFuture: ListenableFuture<MediaBrowser> private lateinit var browserFuture: ListenableFuture<MediaBrowser>
private val browser: MediaBrowser? 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 mediaListAdapter: FolderMediaItemArrayAdapter
private lateinit var mediaListView: ListView private lateinit var mediaListView: ListView