diff options
Diffstat (limited to 'lib/Tire_pressure.dart')
-rw-r--r-- | lib/Tire_pressure.dart | 103 |
1 files changed, 82 insertions, 21 deletions
diff --git a/lib/Tire_pressure.dart b/lib/Tire_pressure.dart index 2f68bf3..f3a8e73 100644 --- a/lib/Tire_pressure.dart +++ b/lib/Tire_pressure.dart @@ -1,55 +1,48 @@ // SPDX-License-Identifier: Apache-2.0 -import 'package:dashboard_app/size.dart'; import 'package:flutter/material.dart'; import 'package:percent_indicator/linear_percent_indicator.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:dashboard_app/size.dart'; +import '../vehicle-signals/vss_providers.dart'; - - -class TirePressure extends StatefulWidget { - String tname; - double tpress; +class TirePressure extends StatelessWidget { + String tireName; + double tirePressure; CrossAxisAlignment crossAxisAlignment; MainAxisAlignment mainAxisAlignment; + TirePressure( {Key? key, - required this.tname, - required this.tpress, + required this.tireName, + required this.tirePressure, required this.crossAxisAlignment, required this.mainAxisAlignment}) : super(key: key); @override - State<TirePressure> createState() => _TirePressureState(); -} - -class _TirePressureState extends State<TirePressure> { - @override Widget build(BuildContext context) { return SizedBox( height: SizeConfig.safeBlockVertical * 12, width: SizeConfig.safeBlockHorizontal * 14, child: Column( - mainAxisAlignment: widget.mainAxisAlignment, - + mainAxisAlignment: mainAxisAlignment, children: [ Text( - '${widget.tname}', + '${tireName}', style: SizeConfig.smallnormalfont2, ), Text( - widget.tpress.toString() + ' PSI', + tirePressure.toString() + ' PSI', style: SizeConfig.smallnormalfont, ), LinearPercentIndicator( width: SizeConfig.safeBlockHorizontal * 11, - - progressColor: widget.tpress / 50 > 0.6 ? Colors.green : Colors.red, + progressColor: tirePressure / 50 > 0.6 ? Colors.green : Colors.red, lineHeight: SizeConfig.safeBlockVertical * 1.5, alignment: MainAxisAlignment.center, animateFromLastPercent: true, animation: true, - percent: widget.tpress / 50, - + percent: tirePressure / 50, barRadius: Radius.circular(SizeConfig.fontsize / 4), backgroundColor: Colors.grey, ), @@ -58,3 +51,71 @@ class _TirePressureState extends State<TirePressure> { ); } } + +class FrontLeftTirePressure extends ConsumerWidget { + FrontLeftTirePressure({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final vehicleFrontLeftTP = + ref.watch(vehicleSignalFrontLeftTirePressureProvider); + + return TirePressure( + tireName: 'Left Front', + tirePressure: vehicleFrontLeftTP.pressure, + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.end, + ); + } +} + +class RearLeftTirePressure extends ConsumerWidget { + RearLeftTirePressure({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final vehicleRearLeftTP = + ref.watch(vehicleSignalRearLeftTirePressureProvider); + + return TirePressure( + tireName: 'Left Rear', + tirePressure: vehicleRearLeftTP.pressure, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.end, + ); + } +} + +class FrontRightTirePressure extends ConsumerWidget { + FrontRightTirePressure({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final vehicleFrontRightTP = + ref.watch(vehicleSignalFrontRightTirePressureProvider); + + return TirePressure( + tireName: 'Right Front', + tirePressure: vehicleFrontRightTP.pressure, + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + ); + } +} + +class RearRightTirePressure extends ConsumerWidget { + RearRightTirePressure({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final vehicleRearRightTP = + ref.watch(vehicleSignalRearRightTirePressureProvider); + + return TirePressure( + tireName: 'Right Rear', + tirePressure: vehicleRearRightTP.pressure, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + ); + } +} |