Verify that section buckets and header controllers are contiguous
Fixes: 204453772 Test: pipeline tests Change-Id: Iabd16e11bffb4d2da290c6e8a94b85d08085493a
This commit is contained in:
@@ -230,7 +230,13 @@ public class ShadeListBuilder implements Dumpable {
|
||||
mPipelineState.requireState(STATE_IDLE);
|
||||
|
||||
mNotifSections.clear();
|
||||
NotifSectioner lastSection = null;
|
||||
for (NotifSectioner sectioner : sectioners) {
|
||||
if (lastSection != null && lastSection.getBucket() > sectioner.getBucket()) {
|
||||
throw new IllegalArgumentException("setSectioners with non contiguous sections "
|
||||
+ lastSection.getName() + " - " + lastSection.getBucket() + " & "
|
||||
+ sectioner.getName() + " - " + sectioner.getBucket());
|
||||
}
|
||||
final NotifSection section = new NotifSection(sectioner, mNotifSections.size());
|
||||
final NotifComparator sectionComparator = section.getComparator();
|
||||
mNotifSections.add(section);
|
||||
@@ -238,6 +244,7 @@ public class ShadeListBuilder implements Dumpable {
|
||||
if (sectionComparator != null) {
|
||||
sectionComparator.setInvalidationListener(this::onNotifComparatorInvalidated);
|
||||
}
|
||||
lastSection = sectioner;
|
||||
}
|
||||
|
||||
mNotifSections.add(new NotifSection(DEFAULT_SECTIONER, mNotifSections.size()));
|
||||
|
||||
@@ -57,6 +57,7 @@ class NodeSpecBuilder(
|
||||
|
||||
var currentSection: NotifSection? = null
|
||||
val prevSections = mutableSetOf<NotifSection?>()
|
||||
var lastSection: NotifSection? = null
|
||||
val showHeaders = sectionHeaderVisibilityProvider.sectionHeadersVisible
|
||||
val sectionOrder = mutableListOf<NotifSection?>()
|
||||
val sectionHeaders = mutableMapOf<NotifSection?, NodeController?>()
|
||||
@@ -65,6 +66,14 @@ class NodeSpecBuilder(
|
||||
for (entry in notifList) {
|
||||
val section = entry.section!!
|
||||
|
||||
lastSection?.let {
|
||||
if (it.bucket > section.bucket) {
|
||||
throw IllegalStateException("buildNodeSpec with non contiguous section " +
|
||||
"buckets ${it.sectioner.name} - ${it.bucket} & " +
|
||||
"${it.sectioner.name} - ${it.bucket}")
|
||||
}
|
||||
}
|
||||
lastSection = section
|
||||
if (prevSections.contains(section)) {
|
||||
throw java.lang.RuntimeException("Section ${section.label} has been duplicated")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user