From 8803a2b7c8be6b53a5146b0de9755bd774e9eb42 Mon Sep 17 00:00:00 2001 From: Beth Thibodeau Date: Tue, 28 Sep 2021 18:50:13 -0400 Subject: [PATCH] Fix error from null intent Fixes: 201385615 Test: atest MediaDataManagerTest Change-Id: I0f76061e18044b5c331f098983fac8ada20b3839 --- .../systemui/media/MediaDataManager.kt | 2 +- .../systemui/media/MediaDataManagerTest.kt | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt index eacdab6e537da..06a1eeac425d9 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt @@ -889,7 +889,7 @@ class MediaDataManager( dismissIntent = target .baseAction .extras - .getParcelable(EXTRAS_SMARTSPACE_DISMISS_INTENT_KEY) as Intent + .getParcelable(EXTRAS_SMARTSPACE_DISMISS_INTENT_KEY) as Intent? } packageName(target)?.let { return SmartspaceMediaData(target.smartspaceTargetId, isActive, true, it, diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataManagerTest.kt index 47c5545ab5874..d864aaeadee3a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataManagerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataManagerTest.kt @@ -404,6 +404,26 @@ class MediaDataManagerTest : SysuiTestCase() { eq(false)) } + @Test + fun testOnSmartspaceMediaDataLoaded_hasNullIntent_callsListener() { + val recommendationExtras = Bundle().apply { + putString("package_name", PACKAGE_NAME) + putParcelable("dismiss_intent", null) + } + whenever(mediaSmartspaceBaseAction.extras).thenReturn(recommendationExtras) + whenever(mediaSmartspaceTarget.baseAction).thenReturn(mediaSmartspaceBaseAction) + whenever(mediaSmartspaceTarget.iconGrid).thenReturn(listOf()) + + smartspaceMediaDataProvider.onTargetsAvailable(listOf(mediaSmartspaceTarget)) + + verify(listener).onSmartspaceMediaDataLoaded( + eq(KEY_MEDIA_SMARTSPACE), + eq(EMPTY_SMARTSPACE_MEDIA_DATA + .copy(targetId = KEY_MEDIA_SMARTSPACE, isActive = true, + isValid = false, dismissIntent = null)), + eq(false)) + } + @Test fun testOnSmartspaceMediaDataLoaded_hasNoneMediaTarget_notCallsListener() { smartspaceMediaDataProvider.onTargetsAvailable(listOf())