Unverified Commit 4e3f4bb6 authored by Darren Austin's avatar Darren Austin Committed by GitHub

Migrated the Slider widget and tests to null safety. (#68232)

parent 5aef988a
...@@ -1317,6 +1317,7 @@ class _RenderRangeSlider extends RenderBox with RelayoutWhenSystemFontsChangeMix ...@@ -1317,6 +1317,7 @@ class _RenderRangeSlider extends RenderBox with RelayoutWhenSystemFontsChangeMix
final bool startThumbSelected = _lastThumbSelection == Thumb.start; final bool startThumbSelected = _lastThumbSelection == Thumb.start;
final bool endThumbSelected = _lastThumbSelection == Thumb.end; final bool endThumbSelected = _lastThumbSelection == Thumb.end;
final Size resolvedscreenSize = screenSize.isEmpty ? size : screenSize;
if (!_overlayAnimation.isDismissed) { if (!_overlayAnimation.isDismissed) {
if (startThumbSelected) { if (startThumbSelected) {
...@@ -1331,6 +1332,8 @@ class _RenderRangeSlider extends RenderBox with RelayoutWhenSystemFontsChangeMix ...@@ -1331,6 +1332,8 @@ class _RenderRangeSlider extends RenderBox with RelayoutWhenSystemFontsChangeMix
sliderTheme: _sliderTheme, sliderTheme: _sliderTheme,
textDirection: _textDirection, textDirection: _textDirection,
value: startValue, value: startValue,
textScaleFactor: _textScaleFactor,
sizeWithOverflow: resolvedscreenSize,
); );
} }
if (endThumbSelected) { if (endThumbSelected) {
...@@ -1345,6 +1348,8 @@ class _RenderRangeSlider extends RenderBox with RelayoutWhenSystemFontsChangeMix ...@@ -1345,6 +1348,8 @@ class _RenderRangeSlider extends RenderBox with RelayoutWhenSystemFontsChangeMix
sliderTheme: _sliderTheme, sliderTheme: _sliderTheme,
textDirection: _textDirection, textDirection: _textDirection,
value: endValue, value: endValue,
textScaleFactor: _textScaleFactor,
sizeWithOverflow: resolvedscreenSize,
); );
} }
} }
...@@ -1392,7 +1397,6 @@ class _RenderRangeSlider extends RenderBox with RelayoutWhenSystemFontsChangeMix ...@@ -1392,7 +1397,6 @@ class _RenderRangeSlider extends RenderBox with RelayoutWhenSystemFontsChangeMix
final double bottomValue = isLastThumbStart ? endValue : startValue; final double bottomValue = isLastThumbStart ? endValue : startValue;
final double topValue = isLastThumbStart ? startValue : endValue; final double topValue = isLastThumbStart ? startValue : endValue;
final bool shouldPaintValueIndicators = isEnabled && labels != null && !_valueIndicatorAnimation.isDismissed && showValueIndicator; final bool shouldPaintValueIndicators = isEnabled && labels != null && !_valueIndicatorAnimation.isDismissed && showValueIndicator;
final Size resolvedscreenSize = screenSize.isEmpty ? size : screenSize;
if (shouldPaintValueIndicators) { if (shouldPaintValueIndicators) {
_state.paintBottomValueIndicator = (PaintingContext context, Offset offset) { _state.paintBottomValueIndicator = (PaintingContext context, Offset offset) {
......
...@@ -1385,6 +1385,8 @@ class _RenderSlider extends RenderBox with RelayoutWhenSystemFontsChangeMixin { ...@@ -1385,6 +1385,8 @@ class _RenderSlider extends RenderBox with RelayoutWhenSystemFontsChangeMixin {
sliderTheme: _sliderTheme, sliderTheme: _sliderTheme,
textDirection: _textDirection, textDirection: _textDirection,
value: _value, value: _value,
textScaleFactor: _textScaleFactor,
sizeWithOverflow: screenSize.isEmpty ? size : screenSize,
); );
} }
...@@ -1451,8 +1453,9 @@ class _RenderSlider extends RenderBox with RelayoutWhenSystemFontsChangeMixin { ...@@ -1451,8 +1453,9 @@ class _RenderSlider extends RenderBox with RelayoutWhenSystemFontsChangeMixin {
parentBox: this, parentBox: this,
sliderTheme: _sliderTheme, sliderTheme: _sliderTheme,
textDirection: _textDirection, textDirection: _textDirection,
sizeWithOverflow: screenSize.isEmpty ? size : screenSize,
value: _value, value: _value,
textScaleFactor: textScaleFactor,
sizeWithOverflow: screenSize.isEmpty ? size : screenSize,
); );
} }
......
...@@ -870,14 +870,14 @@ abstract class SliderComponentShape { ...@@ -870,14 +870,14 @@ abstract class SliderComponentShape {
Offset center, { Offset center, {
required Animation<double> activationAnimation, required Animation<double> activationAnimation,
required Animation<double> enableAnimation, required Animation<double> enableAnimation,
bool isDiscrete, required bool isDiscrete,
required TextPainter labelPainter, required TextPainter labelPainter,
required RenderBox parentBox, required RenderBox parentBox,
required SliderThemeData sliderTheme, required SliderThemeData sliderTheme,
required TextDirection textDirection, required TextDirection textDirection,
required double value, required double value,
double textScaleFactor, required double textScaleFactor,
Size sizeWithOverflow, required Size sizeWithOverflow,
}); });
/// Special instance of [SliderComponentShape] to skip the thumb drawing. /// Special instance of [SliderComponentShape] to skip the thumb drawing.
...@@ -927,7 +927,7 @@ abstract class SliderTickMarkShape { ...@@ -927,7 +927,7 @@ abstract class SliderTickMarkShape {
/// {@endtemplate} /// {@endtemplate}
Size getPreferredSize({ Size getPreferredSize({
required SliderThemeData sliderTheme, required SliderThemeData sliderTheme,
bool isEnabled, required bool isEnabled,
}); });
/// Paints the slider track. /// Paints the slider track.
...@@ -958,7 +958,7 @@ abstract class SliderTickMarkShape { ...@@ -958,7 +958,7 @@ abstract class SliderTickMarkShape {
required SliderThemeData sliderTheme, required SliderThemeData sliderTheme,
required Animation<double> enableAnimation, required Animation<double> enableAnimation,
required Offset thumbCenter, required Offset thumbCenter,
bool isEnabled, required bool isEnabled,
required TextDirection textDirection, required TextDirection textDirection,
}); });
...@@ -2012,7 +2012,7 @@ class RoundSliderTickMarkShape extends SliderTickMarkShape { ...@@ -2012,7 +2012,7 @@ class RoundSliderTickMarkShape extends SliderTickMarkShape {
@override @override
Size getPreferredSize({ Size getPreferredSize({
required SliderThemeData sliderTheme, required SliderThemeData sliderTheme,
bool isEnabled = false, required bool isEnabled,
}) { }) {
assert(sliderTheme != null); assert(sliderTheme != null);
assert(sliderTheme.trackHeight != null); assert(sliderTheme.trackHeight != null);
...@@ -2032,7 +2032,7 @@ class RoundSliderTickMarkShape extends SliderTickMarkShape { ...@@ -2032,7 +2032,7 @@ class RoundSliderTickMarkShape extends SliderTickMarkShape {
required Animation<double> enableAnimation, required Animation<double> enableAnimation,
required TextDirection textDirection, required TextDirection textDirection,
required Offset thumbCenter, required Offset thumbCenter,
bool isEnabled = false, required bool isEnabled,
}) { }) {
assert(context != null); assert(context != null);
assert(center != null); assert(center != null);
...@@ -2178,8 +2178,8 @@ class RoundRangeSliderTickMarkShape extends RangeSliderTickMarkShape { ...@@ -2178,8 +2178,8 @@ class RoundRangeSliderTickMarkShape extends RangeSliderTickMarkShape {
class _EmptySliderTickMarkShape extends SliderTickMarkShape { class _EmptySliderTickMarkShape extends SliderTickMarkShape {
@override @override
Size getPreferredSize({ Size getPreferredSize({
SliderThemeData? sliderTheme, required SliderThemeData sliderTheme,
bool? isEnabled, required bool isEnabled,
}) { }) {
return Size.zero; return Size.zero;
} }
...@@ -2192,7 +2192,7 @@ class _EmptySliderTickMarkShape extends SliderTickMarkShape { ...@@ -2192,7 +2192,7 @@ class _EmptySliderTickMarkShape extends SliderTickMarkShape {
required SliderThemeData sliderTheme, required SliderThemeData sliderTheme,
required Animation<double> enableAnimation, required Animation<double> enableAnimation,
required Offset thumbCenter, required Offset thumbCenter,
bool? isEnabled, required bool isEnabled,
required TextDirection textDirection, required TextDirection textDirection,
}) { }) {
// no-op. // no-op.
...@@ -2216,16 +2216,16 @@ class _EmptySliderComponentShape extends SliderComponentShape { ...@@ -2216,16 +2216,16 @@ class _EmptySliderComponentShape extends SliderComponentShape {
void paint( void paint(
PaintingContext context, PaintingContext context,
Offset center, { Offset center, {
Animation<double>? activationAnimation, required Animation<double> activationAnimation,
Animation<double>? enableAnimation, required Animation<double> enableAnimation,
bool? isDiscrete, required bool isDiscrete,
TextPainter? labelPainter, required TextPainter labelPainter,
RenderBox? parentBox, required RenderBox parentBox,
SliderThemeData? sliderTheme, required SliderThemeData sliderTheme,
TextDirection? textDirection, required TextDirection textDirection,
double? value, required double value,
double? textScaleFactor, required double textScaleFactor,
Size? sizeWithOverflow, required Size sizeWithOverflow,
}) { }) {
// no-op. // no-op.
} }
...@@ -2290,16 +2290,16 @@ class RoundSliderThumbShape extends SliderComponentShape { ...@@ -2290,16 +2290,16 @@ class RoundSliderThumbShape extends SliderComponentShape {
void paint( void paint(
PaintingContext context, PaintingContext context,
Offset center, { Offset center, {
Animation<double>? activationAnimation, required Animation<double> activationAnimation,
required Animation<double> enableAnimation, required Animation<double> enableAnimation,
bool? isDiscrete, required bool isDiscrete,
TextPainter? labelPainter, required TextPainter labelPainter,
RenderBox? parentBox, required RenderBox parentBox,
required SliderThemeData sliderTheme, required SliderThemeData sliderTheme,
TextDirection? textDirection, required TextDirection textDirection,
double? value, required double value,
double? textScaleFactor, required double textScaleFactor,
Size? sizeWithOverflow, required Size sizeWithOverflow,
}) { }) {
assert(context != null); assert(context != null);
assert(center != null); assert(center != null);
...@@ -2326,7 +2326,7 @@ class RoundSliderThumbShape extends SliderComponentShape { ...@@ -2326,7 +2326,7 @@ class RoundSliderThumbShape extends SliderComponentShape {
end: pressedElevation, end: pressedElevation,
); );
final double evaluatedElevation = elevationTween.evaluate(activationAnimation!); final double evaluatedElevation = elevationTween.evaluate(activationAnimation);
final Path path = Path() final Path path = Path()
..addArc(Rect.fromCenter(center: center, width: 2 * radius, height: 2 * radius), 0, math.pi * 2); ..addArc(Rect.fromCenter(center: center, width: 2 * radius, height: 2 * radius), 0, math.pi * 2);
canvas.drawShadow(path, Colors.black, evaluatedElevation, true); canvas.drawShadow(path, Colors.black, evaluatedElevation, true);
...@@ -2484,14 +2484,14 @@ class RoundSliderOverlayShape extends SliderComponentShape { ...@@ -2484,14 +2484,14 @@ class RoundSliderOverlayShape extends SliderComponentShape {
Offset center, { Offset center, {
required Animation<double> activationAnimation, required Animation<double> activationAnimation,
required Animation<double> enableAnimation, required Animation<double> enableAnimation,
bool isDiscrete = false, required bool isDiscrete,
required TextPainter labelPainter, required TextPainter labelPainter,
required RenderBox parentBox, required RenderBox parentBox,
required SliderThemeData sliderTheme, required SliderThemeData sliderTheme,
required TextDirection textDirection, required TextDirection textDirection,
required double value, required double value,
double? textScaleFactor, required double textScaleFactor,
Size? sizeWithOverflow, required Size sizeWithOverflow,
}) { }) {
assert(context != null); assert(context != null);
assert(center != null); assert(center != null);
...@@ -2549,28 +2549,28 @@ class RectangularSliderValueIndicatorShape extends SliderComponentShape { ...@@ -2549,28 +2549,28 @@ class RectangularSliderValueIndicatorShape extends SliderComponentShape {
void paint( void paint(
PaintingContext context, PaintingContext context,
Offset center, { Offset center, {
Animation<double>? activationAnimation, required Animation<double> activationAnimation,
Animation<double>? enableAnimation, required Animation<double> enableAnimation,
bool? isDiscrete, required bool isDiscrete,
TextPainter? labelPainter, required TextPainter labelPainter,
required RenderBox parentBox, required RenderBox parentBox,
SliderThemeData? sliderTheme, required SliderThemeData sliderTheme,
TextDirection? textDirection, required TextDirection textDirection,
double? value, required double value,
double? textScaleFactor, required double textScaleFactor,
Size? sizeWithOverflow, required Size sizeWithOverflow,
}) { }) {
final Canvas canvas = context.canvas; final Canvas canvas = context.canvas;
final double scale = activationAnimation!.value; final double scale = activationAnimation.value;
_pathPainter.paint( _pathPainter.paint(
parentBox: parentBox, parentBox: parentBox,
canvas: canvas, canvas: canvas,
center: center, center: center,
scale: scale, scale: scale,
labelPainter: labelPainter!, labelPainter: labelPainter,
textScaleFactor: textScaleFactor!, textScaleFactor: textScaleFactor,
sizeWithOverflow: sizeWithOverflow!, sizeWithOverflow: sizeWithOverflow,
backgroundPaintColor: sliderTheme!.valueIndicatorColor!); backgroundPaintColor: sliderTheme.valueIndicatorColor!);
} }
} }
...@@ -2815,16 +2815,16 @@ class PaddleSliderValueIndicatorShape extends SliderComponentShape { ...@@ -2815,16 +2815,16 @@ class PaddleSliderValueIndicatorShape extends SliderComponentShape {
void paint( void paint(
PaintingContext context, PaintingContext context,
Offset center, { Offset center, {
Animation<double>? activationAnimation, required Animation<double> activationAnimation,
Animation<double>? enableAnimation, required Animation<double> enableAnimation,
bool? isDiscrete, required bool isDiscrete,
TextPainter? labelPainter, required TextPainter labelPainter,
RenderBox? parentBox, required RenderBox parentBox,
SliderThemeData? sliderTheme, required SliderThemeData sliderTheme,
TextDirection? textDirection, required TextDirection textDirection,
double? value, required double value,
double? textScaleFactor, required double textScaleFactor,
Size? sizeWithOverflow, required Size sizeWithOverflow,
}) { }) {
assert(context != null); assert(context != null);
assert(center != null); assert(center != null);
...@@ -2833,19 +2833,19 @@ class PaddleSliderValueIndicatorShape extends SliderComponentShape { ...@@ -2833,19 +2833,19 @@ class PaddleSliderValueIndicatorShape extends SliderComponentShape {
assert(labelPainter != null); assert(labelPainter != null);
assert(parentBox != null); assert(parentBox != null);
assert(sliderTheme != null); assert(sliderTheme != null);
assert(!sizeWithOverflow!.isEmpty); assert(!sizeWithOverflow.isEmpty);
final ColorTween enableColor = ColorTween( final ColorTween enableColor = ColorTween(
begin: sliderTheme!.disabledThumbColor, begin: sliderTheme.disabledThumbColor,
end: sliderTheme.valueIndicatorColor, end: sliderTheme.valueIndicatorColor,
); );
_pathPainter.paint( _pathPainter.paint(
context.canvas, context.canvas,
center, center,
Paint()..color = enableColor.evaluate(enableAnimation!)!, Paint()..color = enableColor.evaluate(enableAnimation)!,
activationAnimation!.value, activationAnimation.value,
labelPainter!, labelPainter,
textScaleFactor!, textScaleFactor,
sizeWithOverflow!, sizeWithOverflow,
null, null,
); );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment