From 0261ba2c1dc30fa662553d592717ce465958bbe2 Mon Sep 17 00:00:00 2001 From: Beth Thibodeau Date: Thu, 9 Feb 2023 11:54:43 -0600 Subject: [PATCH] Handle null extras for MediaDescriptions Fixes: 268408619 Test: atest MediaDataManagerTest Change-Id: I113596e7a562038abf6f8cccda453ac145f5ac19 --- .../media/controls/util/MediaDataUtils.java | 6 ++++-- .../controls/pipeline/MediaDataManagerTest.kt | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaDataUtils.java b/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaDataUtils.java index 85282a1d6c12c..e95106e0987a3 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaDataUtils.java +++ b/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaDataUtils.java @@ -16,6 +16,7 @@ package com.android.systemui.media.controls.util; +import android.annotation.Nullable; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; @@ -61,8 +62,9 @@ public class MediaDataUtils { * @param extras * @return the progress value between 0-1 inclusive if prsent, otherwise null */ - public static Double getDescriptionProgress(Bundle extras) { - if (!extras.containsKey(MediaConstants.DESCRIPTION_EXTRAS_KEY_COMPLETION_STATUS)) { + public static Double getDescriptionProgress(@Nullable Bundle extras) { + if (extras == null + || !extras.containsKey(MediaConstants.DESCRIPTION_EXTRAS_KEY_COMPLETION_STATUS)) { return null; } diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/pipeline/MediaDataManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/pipeline/MediaDataManagerTest.kt index 5c7d2421cd837..66cec5d4a43a8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/pipeline/MediaDataManagerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/pipeline/MediaDataManagerTest.kt @@ -809,6 +809,24 @@ class MediaDataManagerTest : SysuiTestCase() { assertThat(data.resumeProgress).isEqualTo(1) } + @Test + fun testAddResumptionControls_hasNoExtras() { + whenever(mediaFlags.isResumeProgressEnabled()).thenReturn(true) + + // WHEN resumption controls are added that do not have any extras + val desc = + MediaDescription.Builder().run { + setTitle(SESSION_TITLE) + build() + } + addResumeControlAndLoad(desc) + + // Resume progress is null + val data = mediaDataCaptor.value + assertThat(data.resumption).isTrue() + assertThat(data.resumeProgress).isEqualTo(null) + } + @Test fun testResumptionDisabled_dismissesResumeControls() { // WHEN there are resume controls and resumption is switched off