Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 076aad91 authored by Matt Pietal's avatar Matt Pietal
Browse files

[DO NOT MERGE] Smartspace - Don't create session ahead of init

After the device is setup, if the smartspace component is not
available/initialized, don't attempt to start a session.

Fixes: 199986217
Test: atest LockscreenSmartspaceControllerTest
Change-Id: I36d6f75b37cc5f5274b1cea3a35338f6da424a20
parent 8e2e404d
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import android.app.smartspace.SmartspaceTarget
import android.content.ContentResolver
import android.content.Context
import android.content.Intent
import android.content.pm.UserInfo
import android.database.ContentObserver
import android.net.Uri
import android.os.Handler
@@ -192,7 +191,7 @@ class LockscreenSmartspaceController @Inject constructor(
    }

    private fun connectSession() {
        if (plugin == null || session != null) {
        if (plugin == null || session != null || !this::smartspaceView.isInitialized) {
            return
        }

+14 −0
Original line number Diff line number Diff line
@@ -458,6 +458,20 @@ class LockscreenSmartspaceControllerTest : SysuiTestCase() {
        assertEquals(fakeSmartspaceView, controller.view)
    }

    @Test
    fun testConnectAttemptBeforeInitializationShouldNotCreateSession() {
        // GIVEN an uninitalized smartspaceView
        // WHEN the device is provisioned
        `when`(deviceProvisionedController.isDeviceProvisioned()).thenReturn(true)
        `when`(deviceProvisionedController.isCurrentUserSetup()).thenReturn(true)
        deviceProvisionedListener.onDeviceProvisionedChanged()

        // THEN no calls to createSmartspaceSession should occur
        verify(smartspaceManager, never()).createSmartspaceSession(any())
        // THEN no listeners should be registered
        verify(configurationController, never()).addCallback(any())
    }

    private fun connectSession() {
        controller.buildAndConnectView(fakeParent)