summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt17
2 files changed, 19 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt
index 3590f1f4fad8..48f191d12801 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt
@@ -66,6 +66,8 @@ class ControlsListingControllerImpl @VisibleForTesting constructor(
)
private var serviceListing = serviceListingBuilder(context)
+ // All operations in background thread
+ private val callbacks = mutableSetOf<ControlsListingController.ControlsListingCallback>()
companion object {
private const val TAG = "ControlsListingControllerImpl"
@@ -116,9 +118,6 @@ class ControlsListingControllerImpl @VisibleForTesting constructor(
}
}
- // All operations in background thread
- private val callbacks = mutableSetOf<ControlsListingController.ControlsListingCallback>()
-
/**
* Adds a callback to this controller.
*
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt
index 13a77083255c..9b40c5e87b79 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt
@@ -38,10 +38,12 @@ import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.Mockito.`when`
import org.mockito.Mockito.inOrder
+import org.mockito.Mockito.mock
import org.mockito.Mockito.never
import org.mockito.Mockito.reset
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
+import java.util.concurrent.Executor
@SmallTest
@RunWith(AndroidTestingRunner::class)
@@ -104,6 +106,21 @@ class ControlsListingControllerImplTest : SysuiTestCase() {
}
@Test
+ fun testImmediateListingReload_doesNotCrash() {
+ val exec = Executor { it.run() }
+ val mockServiceListing = mock(ServiceListing::class.java)
+ var callback: ServiceListing.Callback? = null
+ `when`(mockServiceListing.addCallback(any<ServiceListing.Callback>())).then {
+ callback = it.getArgument(0)
+ Unit
+ }
+ `when`(mockServiceListing.reload()).then {
+ callback?.onServicesReloaded(listOf(serviceInfo))
+ }
+ ControlsListingControllerImpl(mContext, exec, { mockServiceListing })
+ }
+
+ @Test
fun testStartsOnUser() {
assertEquals(user, controller.currentUserId)
}