Same controller added twice as node spec

Fixes: 205295695
Test: Notify.apk
Change-Id: I46179461b06b02923c6559fb251c2f11d674945f
This commit is contained in:
Jay Aliomer
2021-11-05 14:11:39 -04:00
parent 0ec644c189
commit be13dbf9ff
2 changed files with 36 additions and 2 deletions

View File

@@ -51,8 +51,10 @@ class NodeSpecBuilder(
// If this notif begins a new section, first add the section's header view
if (section != currentSection) {
section.headerController?.let { headerController ->
root.children.add(NodeSpecImpl(root, headerController))
if (section.headerController != currentSection?.headerController) {
section.headerController?.let { headerController ->
root.children.add(NodeSpecImpl(root, headerController))
}
}
prevSections.add(currentSection)
currentSection = section

View File

@@ -58,6 +58,7 @@ class NodeSpecBuilderTest : SysuiTestCase() {
private val section1 = buildSection(1, section1Bucket, headerController1)
private val section1NoHeader = buildSection(1, section1Bucket, null)
private val section2 = buildSection(2, section2Bucket, headerController2)
private val section3 = buildSection(3, section2Bucket, headerController2)
private val fakeViewBarn = FakeViewBarn()
@@ -74,6 +75,37 @@ class NodeSpecBuilderTest : SysuiTestCase() {
specBuilder = NodeSpecBuilder(viewBarn)
}
@Test
fun testMultipleSectionsWithSameController() {
checkOutput(
listOf(
notif(0, section0),
notif(1, section2),
notif(2, section3)
),
tree(
node(headerController0),
notifNode(0),
node(headerController2),
notifNode(1),
notifNode(2)
)
)
}
@Test(expected = RuntimeException::class)
fun testMultipleSectionsWithSameControllerNonConsecutive() {
checkOutput(
listOf(
notif(0, section0),
notif(1, section1),
notif(2, section3),
notif(3, section1)
),
tree()
)
}
@Test
fun testSimpleMapping() {
checkOutput(