Merge "Verify that section buckets and header controllers are contiguous" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
04248bddc3
@@ -230,7 +230,13 @@ public class ShadeListBuilder implements Dumpable {
|
|||||||
mPipelineState.requireState(STATE_IDLE);
|
mPipelineState.requireState(STATE_IDLE);
|
||||||
|
|
||||||
mNotifSections.clear();
|
mNotifSections.clear();
|
||||||
|
NotifSectioner lastSection = null;
|
||||||
for (NotifSectioner sectioner : sectioners) {
|
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 NotifSection section = new NotifSection(sectioner, mNotifSections.size());
|
||||||
final NotifComparator sectionComparator = section.getComparator();
|
final NotifComparator sectionComparator = section.getComparator();
|
||||||
mNotifSections.add(section);
|
mNotifSections.add(section);
|
||||||
@@ -238,6 +244,7 @@ public class ShadeListBuilder implements Dumpable {
|
|||||||
if (sectionComparator != null) {
|
if (sectionComparator != null) {
|
||||||
sectionComparator.setInvalidationListener(this::onNotifComparatorInvalidated);
|
sectionComparator.setInvalidationListener(this::onNotifComparatorInvalidated);
|
||||||
}
|
}
|
||||||
|
lastSection = sectioner;
|
||||||
}
|
}
|
||||||
|
|
||||||
mNotifSections.add(new NotifSection(DEFAULT_SECTIONER, mNotifSections.size()));
|
mNotifSections.add(new NotifSection(DEFAULT_SECTIONER, mNotifSections.size()));
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ class NodeSpecBuilder(
|
|||||||
|
|
||||||
var currentSection: NotifSection? = null
|
var currentSection: NotifSection? = null
|
||||||
val prevSections = mutableSetOf<NotifSection?>()
|
val prevSections = mutableSetOf<NotifSection?>()
|
||||||
|
var lastSection: NotifSection? = null
|
||||||
val showHeaders = sectionHeaderVisibilityProvider.sectionHeadersVisible
|
val showHeaders = sectionHeaderVisibilityProvider.sectionHeadersVisible
|
||||||
val sectionOrder = mutableListOf<NotifSection?>()
|
val sectionOrder = mutableListOf<NotifSection?>()
|
||||||
val sectionHeaders = mutableMapOf<NotifSection?, NodeController?>()
|
val sectionHeaders = mutableMapOf<NotifSection?, NodeController?>()
|
||||||
@@ -65,6 +66,14 @@ class NodeSpecBuilder(
|
|||||||
for (entry in notifList) {
|
for (entry in notifList) {
|
||||||
val section = entry.section!!
|
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)) {
|
if (prevSections.contains(section)) {
|
||||||
throw java.lang.RuntimeException("Section ${section.label} has been duplicated")
|
throw java.lang.RuntimeException("Section ${section.label} has been duplicated")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user