From f65b1a72695cceb41fc8e0d83746f33c6cff0493 Mon Sep 17 00:00:00 2001 From: Matt Pietal Date: Thu, 30 Sep 2021 15:18:32 -0400 Subject: [PATCH] [DO NOT MERGE] Make sure smartspace connects when added And disconnects when there's no views attached. Fixes: 201564901 Fixes: 201546735 Test: atest LockscreenSmartspaceControllerTest Change-Id: I66206b127114484b3c47abe98c6bd2ddafe99b61 (cherry picked from commit 5739b63774605545f8509872a861eafe9842b39b) --- .../statusbar/lockscreen/LockscreenSmartspaceController.kt | 5 +++++ .../lockscreen/LockscreenSmartspaceControllerTest.kt | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt index d7f32251e3d9a..83c98d58e071b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt @@ -87,6 +87,7 @@ class LockscreenSmartspaceController @Inject constructor( var stateChangeListener = object : View.OnAttachStateChangeListener { override fun onViewAttachedToWindow(v: View) { smartspaceViews.add(v as SmartspaceView) + connectSession() updateTextColorFromWallpaper() statusBarStateListener.onDozeAmountChanged(0f, statusBarStateController.dozeAmount) @@ -94,6 +95,10 @@ class LockscreenSmartspaceController @Inject constructor( override fun onViewDetachedFromWindow(v: View) { smartspaceViews.remove(v as SmartspaceView) + + if (smartspaceViews.isEmpty()) { + disconnect() + } } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt index c8fec02121374..5d5048518e4ff 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceControllerTest.kt @@ -199,8 +199,9 @@ class LockscreenSmartspaceControllerTest : SysuiTestCase() { `when`(deviceProvisionedController.isDeviceProvisioned()).thenReturn(false) `when`(deviceProvisionedController.isCurrentUserSetup()).thenReturn(false) - // WHEN a connection attempt is made - controller.buildAndConnectView(fakeParent) + // WHEN a connection attempt is made and view is attached + val view = controller.buildAndConnectView(fakeParent) + controller.stateChangeListener.onViewAttachedToWindow(view) // THEN no session is created verify(smartspaceManager, never()).createSmartspaceSession(any())