From ec14a0bcdcee644634063df0b938f1035064ba33 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Mon, 17 May 2021 18:29:41 +0200 Subject: [PATCH] Purchase slider null safety --- lib/widgets/purchase_slider.dart | 38 ++++++++++++++------------------ 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/lib/widgets/purchase_slider.dart b/lib/widgets/purchase_slider.dart index 9530b726..949daf48 100644 --- a/lib/widgets/purchase_slider.dart +++ b/lib/widgets/purchase_slider.dart @@ -1,5 +1,3 @@ -// @dart=2.9 - import 'dart:math'; import 'package:flutter/material.dart'; @@ -12,19 +10,17 @@ class PaymentInfo extends Equatable { final String text; final String id; - PaymentInfo({@required this.id, @required this.value, @required this.text}); + PaymentInfo({required this.id, required this.value, required this.text}); @override List get props => [value, text, id]; - static PaymentInfo fromProductDetail(ProductDetails pd) { - if (pd == null) return null; - + static PaymentInfo? fromProductDetail(ProductDetails pd) { double value = -1; if (pd.skProduct != null) { - value = double.parse(pd.skProduct.price); + value = double.parse(pd.skProduct!.price); } else if (pd.skuDetail != null) { - value = pd.skuDetail.originalPriceAmountMicros.toDouble() / 100000; + value = pd.skuDetail!.originalPriceAmountMicros.toDouble() / 100000; } return PaymentInfo( @@ -38,16 +34,16 @@ class PaymentInfo extends Equatable { typedef PaymentSliderChanged = void Function(PaymentInfo); class PurchaseSlider extends StatelessWidget { - final List values; - final PaymentInfo selectedValue; + final List values; + final PaymentInfo? selectedValue; final PaymentSliderChanged onChanged; PurchaseSlider({ - @required this.values, - @required this.selectedValue, - @required this.onChanged, + required this.values, + required this.selectedValue, + required this.onChanged, }) { - values.sort((a, b) => a.value.compareTo(b.value)); + values.sort((a, b) => a!.value.compareTo(b!.value)); } @override @@ -67,14 +63,14 @@ class PurchaseSlider extends StatelessWidget { } class ShapePainter extends CustomPainter { - final List values; - final PaymentInfo selectedValue; + final List values; + final PaymentInfo? selectedValue; final Color color; ShapePainter({ - @required this.values, - @required this.selectedValue, - @required this.color, + required this.values, + required this.selectedValue, + required this.color, }); @override @@ -95,8 +91,8 @@ class ShapePainter extends CustomPainter { ..strokeCap = StrokeCap.round ..style = PaintingStyle.fill; - var diff = (values.last.value - values.first.value); - var w = (size.width / diff) * (selectedValue.value - values.first.value); + var diff = (values.last!.value - values.first!.value); + var w = (size.width / diff) * (selectedValue!.value - values.first!.value); var angle = atan(size.height / size.width); var h = w * tan(angle);