getActiveCondition method
Set activeCondition.
The active condition is found by matching the
search criteria in order of precedence:
- Conditional.EQUALS Named breakpoints from a parent ResponsiveBreakpoints.
- Conditional.BETWEEN
- Conditional.SMALLER_THAN a. Named breakpoints. b. Unnamed breakpoints.
- Conditional.LARGER_THAN a. Named breakpoints. b. Unnamed breakpoints. Returns null if no Active Condition is found.
Implementation
Condition? getActiveCondition(
BuildContext context, List<Condition> conditions) {
ResponsiveBreakpointsData responsiveBreakpointsData =
ResponsiveBreakpoints.of(context);
double screenWidth = responsiveBreakpointsData.screenWidth;
for (Condition condition in conditions.reversed) {
if (condition.condition == Conditional.EQUALS) {
if (condition.name == responsiveBreakpointsData.breakpoint.name) {
return condition;
}
continue;
}
if (condition.condition == Conditional.BETWEEN) {
if (screenWidth >= condition.breakpointStart! &&
screenWidth <= condition.breakpointEnd!) {
return condition;
}
continue;
}
if (condition.condition == Conditional.SMALLER_THAN) {
if (condition.name != null) {
if (responsiveBreakpointsData.smallerThan(condition.name!)) {
return condition;
}
}
if (condition.breakpointStart != null) {
if (screenWidth < condition.breakpointStart!) {
return condition;
}
}
continue;
}
if (condition.condition == Conditional.LARGER_THAN) {
if (condition.name != null) {
if (responsiveBreakpointsData.largerThan(condition.name!)) {
return condition;
}
}
if (condition.breakpointStart != null) {
if (screenWidth > condition.breakpointStart!) {
return condition;
}
}
continue;
}
}
return null;
}