From 10ef287c2f486aff80264e02d267a9f6ae3a261c Mon Sep 17 00:00:00 2001 From: Xiaowen Lei Date: Fri, 17 Jun 2022 18:58:23 +0000 Subject: [PATCH] Move `setIsDreaming(..);` to be right after `plugin.getView(parent);`. This is necessary because registerDataProvider(plugin) could already be logging events. The logged surface is 2 (Keyguard) without the `setIsDreaming(true)`. Bug: 227613246 Bug: 231251252 Test: on device via `adb logcat | grep SMARTSPACE_CARD_RECEIVED` Change-Id: Id792bde00b66fd51b6a8606f7f6480718f64a22a --- .../smartspace/DreamSmartspaceController.kt | 3 - .../dagger/SmartspaceViewComponent.kt | 4 +- .../DreamSmartspaceControllerTest.kt | 78 ++++++++----------- 3 files changed, 36 insertions(+), 49 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/dreams/smartspace/DreamSmartspaceController.kt b/packages/SystemUI/src/com/android/systemui/dreams/smartspace/DreamSmartspaceController.kt index 9789cef949d33..63f63a5093d2a 100644 --- a/packages/SystemUI/src/com/android/systemui/dreams/smartspace/DreamSmartspaceController.kt +++ b/packages/SystemUI/src/com/android/systemui/dreams/smartspace/DreamSmartspaceController.kt @@ -145,9 +145,6 @@ class DreamSmartspaceController @Inject constructor( if (view !is View) { return null } - - view.setIsDreaming(true) - return view } else { null diff --git a/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceViewComponent.kt b/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceViewComponent.kt index d3ae198e8e35c..236ba1f92d1f2 100644 --- a/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceViewComponent.kt +++ b/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceViewComponent.kt @@ -56,6 +56,8 @@ interface SmartspaceViewComponent { ): BcSmartspaceDataPlugin.SmartspaceView { val ssView = plugin.getView(parent) + // Currently, this is only used to provide SmartspaceView on Dream surface. + ssView.setIsDreaming(true) ssView.registerDataProvider(plugin) ssView.setIntentStarter(object : BcSmartspaceDataPlugin.IntentStarter { @@ -81,4 +83,4 @@ interface SmartspaceViewComponent { return ssView } } -} \ No newline at end of file +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/smartspace/DreamSmartspaceControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/smartspace/DreamSmartspaceControllerTest.kt index 2f0f0a0a1b8fa..37f96c8d70230 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/smartspace/DreamSmartspaceControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/smartspace/DreamSmartspaceControllerTest.kt @@ -36,17 +36,17 @@ import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.withArgCaptor import com.google.common.truth.Truth.assertThat +import java.util.Optional +import java.util.concurrent.Executor import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock -import org.mockito.Spy import org.mockito.Mockito -import org.mockito.Mockito.`when` import org.mockito.Mockito.verify +import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations -import java.util.Optional -import java.util.concurrent.Executor +import org.mockito.Spy @SmallTest @RunWith(AndroidTestingRunner::class) @@ -87,6 +87,34 @@ class DreamSmartspaceControllerTest : SysuiTestCase() { private lateinit var controller: DreamSmartspaceController + /** + * A class which implements SmartspaceView and extends View. This is mocked to provide the right + * object inheritance and interface implementation used in DreamSmartspaceController + */ + private class TestView(context: Context?) : View(context), SmartspaceView { + override fun registerDataProvider(plugin: BcSmartspaceDataPlugin?) {} + + override fun setPrimaryTextColor(color: Int) {} + + override fun setIsDreaming(isDreaming: Boolean) {} + + override fun setDozeAmount(amount: Float) {} + + override fun setIntentStarter(intentStarter: BcSmartspaceDataPlugin.IntentStarter?) {} + + override fun setFalsingManager(falsingManager: FalsingManager?) {} + + override fun setDnd(image: Drawable?, description: String?) {} + + override fun setNextAlarm(image: Drawable?, description: String?) {} + + override fun setMediaTarget(target: SmartspaceTarget?) {} + + override fun getSelectedPage(): Int { return 0; } + + override fun getCurrentCardTopPadding(): Int { return 0; } + } + @Before fun setup() { MockitoAnnotations.initMocks(this) @@ -129,34 +157,6 @@ class DreamSmartspaceControllerTest : SysuiTestCase() { verify(session).close() } - /** - * A class which implements SmartspaceView and extends View. This is mocked to provide the right - * object inheritance and interface implementation used in DreamSmartspaceController - */ - private class TestView(context: Context?) : View(context), SmartspaceView { - override fun registerDataProvider(plugin: BcSmartspaceDataPlugin?) {} - - override fun setPrimaryTextColor(color: Int) {} - - override fun setIsDreaming(isDreaming: Boolean) {} - - override fun setDozeAmount(amount: Float) {} - - override fun setIntentStarter(intentStarter: BcSmartspaceDataPlugin.IntentStarter?) {} - - override fun setFalsingManager(falsingManager: FalsingManager?) {} - - override fun setDnd(image: Drawable?, description: String?) {} - - override fun setNextAlarm(image: Drawable?, description: String?) {} - - override fun setMediaTarget(target: SmartspaceTarget?) {} - - override fun getSelectedPage(): Int { return 0; } - - override fun getCurrentCardTopPadding(): Int { return 0; } - } - /** * Ensures session begins when a view is attached. */ @@ -180,16 +180,4 @@ class DreamSmartspaceControllerTest : SysuiTestCase() { verify(session).close() } - - /** - * Ensures setIsDreaming(true) is called when the view is built. - */ - @Test - fun testSetIsDreamingTrueOnViewCreate() { - `when`(precondition.conditionsMet()).thenReturn(true) - - controller.buildAndConnectView(Mockito.mock(ViewGroup::class.java)) - - verify(smartspaceView).setIsDreaming(true) - } -} \ No newline at end of file +}