Skip to content

Commit b654812

Browse files
committed
AutoScaleDown Creation #3
*Simplify AutoScaleDown behavior.
1 parent b7dc2dd commit b654812

File tree

1 file changed

+24
-68
lines changed

1 file changed

+24
-68
lines changed

lib/responsive_wrapper.dart

Lines changed: 24 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -882,74 +882,30 @@ List<ResponsiveBreakpointSegment> getBreakpointSegments(
882882
responsiveBreakpoint: breakpoint);
883883
break;
884884
case ResponsiveBreakpointBehavior.AUTOSCALEDOWN:
885-
if (breakpointHolder.isAutoScaleDown) {
886-
breakpointSegmentHolder = ResponsiveBreakpointSegment(
887-
breakpoint: breakpoint.breakpoint,
888-
segmentType: breakpoint.behavior,
889-
responsiveBreakpoint: ResponsiveBreakpoint(
890-
breakpoint: breakpoint.breakpoint,
891-
name: breakpoint.name,
892-
behavior: ResponsiveBreakpointBehavior.AUTOSCALE,
893-
scaleFactor: breakpoint.scaleFactor));
894-
// Construct override breakpoint segment.
895-
int overrideBreakpointIndex = i;
896-
ResponsiveBreakpointSegment overrideBreakpointSegment =
897-
breakpointSegments[overrideBreakpointIndex];
898-
overrideBreakpointSegment = overrideBreakpointSegment.copyWith(
899-
responsiveBreakpoint:
900-
overrideBreakpointSegment.responsiveBreakpoint.copyWith(
901-
breakpoint: breakpoint.breakpoint,
902-
behavior: ResponsiveBreakpointBehavior.AUTOSCALE));
903-
breakpointSegments[overrideBreakpointIndex] =
904-
overrideBreakpointSegment;
905-
} else {
906-
// Split AutoScale behavior between autoScale and autoScaleDown.
907-
if (breakpointHolder.isAutoScale) {
908-
// If breakpoints are duplicate, skip adding midway segment.
909-
if (breakpoint.breakpoint != breakpointHolder.breakpoint) {
910-
// Construct midway breakpoint segment.
911-
ResponsiveBreakpointSegment midwayBreakpointSegment =
912-
ResponsiveBreakpointSegment(
913-
breakpoint: (breakpoint.breakpoint -
914-
breakpointHolder.breakpoint) /
915-
2 +
916-
breakpointHolder.breakpoint,
917-
segmentType: ResponsiveBreakpointBehavior.AUTOSCALEDOWN,
918-
responsiveBreakpoint: ResponsiveBreakpoint(
919-
breakpoint: breakpoint.breakpoint,
920-
name: breakpointHolder.name,
921-
behavior: ResponsiveBreakpointBehavior.AUTOSCALE,
922-
scaleFactor: breakpoint.scaleFactor));
923-
breakpointSegments.add(midwayBreakpointSegment);
924-
}
925-
}
926-
// AutoScaleDown overrides resize behavior.
927-
if (breakpointHolder.isResize) {
928-
// Construct override breakpoint segment.
929-
int overrideBreakpointIndex = breakpointSegments.lastIndexWhere(
930-
(element) =>
931-
element.breakpoint <= breakpointHolder.breakpoint &&
932-
element.isResize);
933-
ResponsiveBreakpointSegment overrideBreakpointSegment =
934-
breakpointSegments[overrideBreakpointIndex];
935-
overrideBreakpointSegment = overrideBreakpointSegment.copyWith(
936-
responsiveBreakpoint:
937-
overrideBreakpointSegment.responsiveBreakpoint.copyWith(
938-
breakpoint: breakpoint.breakpoint,
939-
behavior: ResponsiveBreakpointBehavior.AUTOSCALE));
940-
breakpointSegments[overrideBreakpointIndex] =
941-
overrideBreakpointSegment;
942-
}
943-
// Construct autoScaleDown breakpoint.
944-
breakpointSegmentHolder = ResponsiveBreakpointSegment(
945-
breakpoint: breakpoint.breakpoint,
946-
segmentType: breakpoint.behavior,
947-
responsiveBreakpoint: ResponsiveBreakpoint(
948-
breakpoint: breakpoint.breakpoint,
949-
name: breakpoint.name,
950-
behavior: ResponsiveBreakpointBehavior.AUTOSCALE,
951-
scaleFactor: breakpoint.scaleFactor));
952-
}
885+
// Construct override breakpoint segment.
886+
// AutoScaleDown needs to override the breakpoint
887+
// interval because responsive calculations are
888+
// performed from 0 - ∞.
889+
int overrideBreakpointIndex = i;
890+
ResponsiveBreakpointSegment overrideBreakpointSegment =
891+
breakpointSegments[overrideBreakpointIndex];
892+
overrideBreakpointSegment = overrideBreakpointSegment.copyWith(
893+
responsiveBreakpoint: overrideBreakpointSegment.responsiveBreakpoint
894+
.copyWith(
895+
breakpoint: breakpoint.breakpoint,
896+
behavior: ResponsiveBreakpointBehavior.AUTOSCALE));
897+
breakpointSegments[overrideBreakpointIndex] = overrideBreakpointSegment;
898+
899+
// AutoScaleDown acts as an AutoScale breakpoint
900+
// in the 0 - ∞ direction.
901+
breakpointSegmentHolder = ResponsiveBreakpointSegment(
902+
breakpoint: breakpoint.breakpoint,
903+
segmentType: breakpoint.behavior,
904+
responsiveBreakpoint: ResponsiveBreakpoint(
905+
breakpoint: breakpoint.breakpoint,
906+
name: breakpoint.name,
907+
behavior: ResponsiveBreakpointBehavior.AUTOSCALE,
908+
scaleFactor: breakpoint.scaleFactor));
953909
break;
954910
case ResponsiveBreakpointBehavior.TAG:
955911
break;

0 commit comments

Comments
 (0)