Loading packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt +4 −3 Original line number Diff line number Diff line Loading @@ -91,11 +91,12 @@ class ControlsListingControllerImpl @VisibleForTesting constructor( override var currentUserId = userTracker.userId private set private val serviceListingCallback = ServiceListing.Callback { private val serviceListingCallback = ServiceListing.Callback { list -> Log.d(TAG, "ServiceConfig reloaded, count: ${list.size}") val newServices = list.map { ControlsServiceInfo(userTracker.userContext, it) } // After here, `list` is not captured, so we don't risk modifying it outside of the callback backgroundExecutor.execute { if (userChangeInProgress.get() > 0) return@execute Log.d(TAG, "ServiceConfig reloaded, count: ${it.size}") val newServices = it.map { ControlsServiceInfo(userTracker.userContext, it) } if (featureFlags.isEnabled(Flags.USE_APP_PANELS)) { newServices.forEach(ControlsServiceInfo::resolvePanelActivity) } Loading packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt +14 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.systemui.util.time.FakeSystemClock import org.junit.After import org.junit.Assert.assertEquals import org.junit.Assert.assertNull import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading Loading @@ -480,6 +481,19 @@ class ControlsListingControllerImplTest : SysuiTestCase() { assertNull(controller.getCurrentServices()[0].panelActivity) } @Test fun testListingsNotModifiedByCallback() { // This test checks that if the list passed to the callback is modified, it has no effect // in the resulting services val list = mutableListOf<ServiceInfo>() serviceListingCallbackCaptor.value.onServicesReloaded(list) list.add(ServiceInfo(ComponentName("a", "b"))) executor.runAllReady() assertTrue(controller.getCurrentServices().isEmpty()) } private fun ServiceInfo( componentName: ComponentName, panelActivityComponentName: ComponentName? = null Loading Loading
packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt +4 −3 Original line number Diff line number Diff line Loading @@ -91,11 +91,12 @@ class ControlsListingControllerImpl @VisibleForTesting constructor( override var currentUserId = userTracker.userId private set private val serviceListingCallback = ServiceListing.Callback { private val serviceListingCallback = ServiceListing.Callback { list -> Log.d(TAG, "ServiceConfig reloaded, count: ${list.size}") val newServices = list.map { ControlsServiceInfo(userTracker.userContext, it) } // After here, `list` is not captured, so we don't risk modifying it outside of the callback backgroundExecutor.execute { if (userChangeInProgress.get() > 0) return@execute Log.d(TAG, "ServiceConfig reloaded, count: ${it.size}") val newServices = it.map { ControlsServiceInfo(userTracker.userContext, it) } if (featureFlags.isEnabled(Flags.USE_APP_PANELS)) { newServices.forEach(ControlsServiceInfo::resolvePanelActivity) } Loading
packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt +14 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.systemui.util.time.FakeSystemClock import org.junit.After import org.junit.Assert.assertEquals import org.junit.Assert.assertNull import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading Loading @@ -480,6 +481,19 @@ class ControlsListingControllerImplTest : SysuiTestCase() { assertNull(controller.getCurrentServices()[0].panelActivity) } @Test fun testListingsNotModifiedByCallback() { // This test checks that if the list passed to the callback is modified, it has no effect // in the resulting services val list = mutableListOf<ServiceInfo>() serviceListingCallbackCaptor.value.onServicesReloaded(list) list.add(ServiceInfo(ComponentName("a", "b"))) executor.runAllReady() assertTrue(controller.getCurrentServices().isEmpty()) } private fun ServiceInfo( componentName: ComponentName, panelActivityComponentName: ComponentName? = null Loading