summaryrefslogtreecommitdiffstats
path: root/lib/presentation/screens/dashboard
diff options
context:
space:
mode:
Diffstat (limited to 'lib/presentation/screens/dashboard')
-rw-r--r--lib/presentation/screens/dashboard/widgets/car_status.dart95
-rw-r--r--lib/presentation/screens/dashboard/widgets/circle_indicator.dart2
-rw-r--r--lib/presentation/screens/dashboard/widgets/range.dart19
3 files changed, 62 insertions, 54 deletions
diff --git a/lib/presentation/screens/dashboard/widgets/car_status.dart b/lib/presentation/screens/dashboard/widgets/car_status.dart
index b824871..604d404 100644
--- a/lib/presentation/screens/dashboard/widgets/car_status.dart
+++ b/lib/presentation/screens/dashboard/widgets/car_status.dart
@@ -4,25 +4,13 @@ import 'package:gradient_borders/gradient_borders.dart';
import '../../../../export.dart';
-class CarStatus extends ConsumerStatefulWidget {
+class CarStatus extends ConsumerWidget {
const CarStatus({super.key});
@override
- CarStatusState createState() => CarStatusState();
-}
-
-class CarStatusState extends ConsumerState<CarStatus> {
- @override
- void initState() {
- super.initState();
- // "ref" can be used in all life-cycles of a StatefulWidget.
- //ref.read(counterProvider);
- }
-
- @override
- Widget build(BuildContext context) {
+ Widget build(BuildContext context, WidgetRef Ref) {
return Padding(
- padding: const EdgeInsets.fromLTRB(0,0,0,84),
+ padding: const EdgeInsets.fromLTRB(0, 0, 0, 84),
child: SizedBox(
height: 440,
width: 652,
@@ -59,6 +47,18 @@ class LeftCarStatus extends ConsumerWidget {
ref.watch(vehicleProvider.select((vehicle) => vehicle.frontLeftTire));
final rearLeftTire =
ref.watch(vehicleProvider.select((vehicle) => vehicle.rearLeftTire));
+ final unit =
+ ref.watch(unitStateProvider.select((unit) => unit.pressureUnit));
+
+ String frontLeftTireString = "";
+ String rearLeftTireString = "";
+ if (unit == PressureUnit.psi) {
+ frontLeftTireString = (frontLeftTire * 0.145038).toStringAsFixed(1);
+ rearLeftTireString = (rearLeftTire * 0.145038).toStringAsFixed(1);
+ } else {
+ frontLeftTireString = frontLeftTire.toString();
+ rearLeftTireString = rearLeftTire.toString();
+ }
return Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
@@ -67,22 +67,21 @@ class LeftCarStatus extends ConsumerWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
- PSIProgressIndicator(value: frontLeftTire.toDouble()),
+ TirePressureProgressIndicator(value: frontLeftTire.toDouble()),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
- frontLeftTire.toStringAsFixed(1),
+ frontLeftTireString,
style: GoogleFonts.brunoAce(
- textStyle: TextStyle(
- color: Colors.white, fontSize: 44),
+ textStyle: TextStyle(color: Colors.white, fontSize: 44),
),
),
SizedBox(
width: 5,
),
- PSIWidget(),
+ TirePressureUnitWidget(),
],
),
],
@@ -91,22 +90,21 @@ class LeftCarStatus extends ConsumerWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
- PSIProgressIndicator(value: rearLeftTire.toDouble()),
+ TirePressureProgressIndicator(value: rearLeftTire.toDouble()),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
- rearLeftTire.toStringAsFixed(1),
+ rearLeftTireString,
style: GoogleFonts.brunoAce(
- textStyle: TextStyle(
- color: Colors.white, fontSize: 44),
+ textStyle: TextStyle(color: Colors.white, fontSize: 44),
),
),
SizedBox(
width: 5,
),
- PSIWidget(),
+ TirePressureUnitWidget(),
],
),
],
@@ -127,6 +125,18 @@ class RightCarStatus extends ConsumerWidget {
ref.watch(vehicleProvider.select((vehicle) => vehicle.frontRightTire));
final rearRightTire =
ref.watch(vehicleProvider.select((vehicle) => vehicle.rearRightTire));
+ final unit =
+ ref.watch(unitStateProvider.select((unit) => unit.pressureUnit));
+
+ String frontRightTireString = "";
+ String rearRightTireString = "";
+ if (unit == PressureUnit.psi) {
+ frontRightTireString = (frontRightTire * 0.145038).toStringAsFixed(1);
+ rearRightTireString = (rearRightTire * 0.145038).toStringAsFixed(1);
+ } else {
+ frontRightTireString = frontRightTire.toString();
+ rearRightTireString = rearRightTire.toString();
+ }
return Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
@@ -134,23 +144,21 @@ class RightCarStatus extends ConsumerWidget {
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
-
children: [
- PSIProgressIndicator(value: frontRightTire.toDouble()),
+ TirePressureProgressIndicator(value: frontRightTire.toDouble()),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
- frontRightTire.toStringAsFixed(1),
+ frontRightTireString,
style: GoogleFonts.brunoAce(
- textStyle: TextStyle(
- color: Colors.white, fontSize: 44),
+ textStyle: TextStyle(color: Colors.white, fontSize: 44),
),
),
SizedBox(
width: 5,
),
- PSIWidget(),
+ TirePressureUnitWidget(),
],
),
],
@@ -159,22 +167,21 @@ class RightCarStatus extends ConsumerWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- PSIProgressIndicator(value: rearRightTire.toDouble()),
+ TirePressureProgressIndicator(value: rearRightTire.toDouble()),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
- rearRightTire.toStringAsFixed(1),
+ rearRightTireString,
style: GoogleFonts.brunoAce(
- textStyle: TextStyle(
- color: Colors.white, fontSize: 44),
+ textStyle: TextStyle(color: Colors.white, fontSize: 44),
),
),
SizedBox(
width: 5,
),
- PSIWidget(),
+ TirePressureUnitWidget(),
],
),
],
@@ -184,9 +191,9 @@ class RightCarStatus extends ConsumerWidget {
}
}
-class PSIProgressIndicator extends StatelessWidget {
+class TirePressureProgressIndicator extends StatelessWidget {
final double value;
- const PSIProgressIndicator({
+ const TirePressureProgressIndicator({
Key? key,
required this.value, // Require the value to be passed
}) : super(key: key);
@@ -208,7 +215,6 @@ class PSIProgressIndicator extends StatelessWidget {
LinearGradient(colors: const [Colors.white30, Colors.white]),
),
),
-
),
Positioned(
left: 3,
@@ -231,17 +237,20 @@ class PSIProgressIndicator extends StatelessWidget {
}
}
-class PSIWidget extends StatelessWidget {
- const PSIWidget({
+class TirePressureUnitWidget extends ConsumerWidget {
+ const TirePressureUnitWidget({
super.key,
});
@override
- Widget build(BuildContext context) {
+ Widget build(BuildContext context, WidgetRef ref) {
+ final unit =
+ ref.watch(unitStateProvider.select((unit) => unit.pressureUnit));
+
return Padding(
padding: const EdgeInsets.only(left: 4.0, right: 1.0, bottom: 2.0),
child: Text(
- 'PSI',
+ unit == PressureUnit.kilopascals ? 'kPa' : 'PSI',
style: TextStyle(
fontSize: 26,
),
diff --git a/lib/presentation/screens/dashboard/widgets/circle_indicator.dart b/lib/presentation/screens/dashboard/widgets/circle_indicator.dart
index 6ff3613..e3a3ba5 100644
--- a/lib/presentation/screens/dashboard/widgets/circle_indicator.dart
+++ b/lib/presentation/screens/dashboard/widgets/circle_indicator.dart
@@ -189,7 +189,7 @@ class SpeedProgressIndicatorState extends ConsumerState<SpeedProgressIndicator>
),
Text(
- unit == DistanceUnit.kilometers ? 'Km/h' : 'Mph',
+ unit == DistanceUnit.kilometers ? 'km/h' : 'mph',
style: const TextStyle(color: Colors.white, fontSize: 40),
),
],
diff --git a/lib/presentation/screens/dashboard/widgets/range.dart b/lib/presentation/screens/dashboard/widgets/range.dart
index aea92af..34435ae 100644
--- a/lib/presentation/screens/dashboard/widgets/range.dart
+++ b/lib/presentation/screens/dashboard/widgets/range.dart
@@ -10,8 +10,12 @@ class RangeWidget extends ConsumerWidget {
final range = ref.watch(vehicleProvider.select((vehicle) => vehicle.range));
final unit =
ref.watch(unitStateProvider.select((unit) => unit.distanceUnit));
+ final rangeString = (unit == DistanceUnit.kilometers)
+ ? (range / 1000.0).toStringAsFixed(0)
+ : (range / 1609.0).toStringAsFixed(0);
+
return Container(
- height:130,
+ height: 130,
width: 306,
// padding: const EdgeInsets.all(10),
decoration: const ShapeDecoration(
@@ -54,24 +58,19 @@ class RangeWidget extends ConsumerWidget {
),
RichText(
text: TextSpan(
-
- text: '$range',
+ text: rangeString,
style: GoogleFonts.brunoAce(
-
- textStyle:
- const TextStyle(
+ textStyle: const TextStyle(
color: Colors.white,
fontSize: 44,
),
),
children: <TextSpan>[
TextSpan(
- text:
- unit == DistanceUnit.kilometers ? ' Km' : ' Mi',
+ text: unit == DistanceUnit.kilometers ? ' km' : ' mi',
style: GoogleFonts.brunoAce(
textStyle: const TextStyle(
- color: Color(0xFFC1D8FF),
- fontSize: 38),
+ color: Color(0xFFC1D8FF), fontSize: 38),
),
),
]),