summaryrefslogtreecommitdiffstats
path: root/lib/widgets/fuel_and_speed.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/widgets/fuel_and_speed.dart')
-rw-r--r--lib/widgets/fuel_and_speed.dart111
1 files changed, 111 insertions, 0 deletions
diff --git a/lib/widgets/fuel_and_speed.dart b/lib/widgets/fuel_and_speed.dart
new file mode 100644
index 0000000..2ee902e
--- /dev/null
+++ b/lib/widgets/fuel_and_speed.dart
@@ -0,0 +1,111 @@
+// SPDX-License-Identifier: Apache-2.0
+import 'package:dashboard_app/size.dart';
+import 'package:flutter/src/foundation/key.dart';
+import 'package:flutter/src/widgets/framework.dart';
+import 'package:flutter/material.dart';
+import 'package:percent_indicator/circular_percent_indicator.dart';
+import 'package:percent_indicator/linear_percent_indicator.dart';
+
+
+
+class SpeedAndFuel extends StatelessWidget {
+ double fuel;
+ double speed;
+ SpeedAndFuel({Key? key, required this.fuel, required this.speed})
+ : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ double width = MediaQuery.of(context).size.width;
+ return SizedBox(
+ width: width * 0.4,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ children: [
+ CircularPercentIndicator(
+ radius: SizeConfig.fontsize * 1.6,
+ percent: fuel / 100,
+ lineWidth: SizeConfig.fontsize / 2,
+
+ backgroundColor: Colors.lightBlue.shade100,
+ progressColor: fuel < 25
+ ? Colors.redAccent
+ : fuel < 50
+ ? Colors.orange
+ : Colors.green,
+ animation: true,
+ circularStrokeCap: CircularStrokeCap.round,
+ animateFromLastPercent: true,
+ center: Text(
+ fuel.toString() + ' %',
+ style: SizeConfig.smallnormalfont,
+ ),
+ footer: Text(
+ 'fuel',
+ style: SizeConfig.smallnormalfont2,
+ ),
+ ),
+ CircularPercentIndicator(
+ radius: SizeConfig.fontsize * 1.6,
+ percent: speed / 300,
+ lineWidth: SizeConfig.fontsize / 2,
+ backgroundColor: Color.fromARGB(255, 176, 213, 195),
+ progressColor: Colors.lightBlueAccent,
+ animation: true,
+ circularStrokeCap: CircularStrokeCap.round,
+ animateFromLastPercent: true,
+ center: Text(
+ speed.toString(),
+ style: SizeConfig.smallnormalfont,
+ ),
+ footer: Text(
+ 'Speed in KM/H',
+ style: SizeConfig.smallnormalfont2,
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+}
+
+class Rpm extends StatelessWidget {
+ double rpm;
+ Rpm({Key? key, required this.rpm}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ return SizedBox(
+ height: SizeConfig.safeBlockVertical * 9,
+ width: SizeConfig.safeBlockHorizontal * 35,
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ crossAxisAlignment: CrossAxisAlignment.end,
+ children: [
+ Text(
+ "Engine Status",
+ style: SizeConfig.smallnormalfont2,
+ ),
+ LinearPercentIndicator(
+ backgroundColor: Colors.white70,
+ addAutomaticKeepAlive: true,
+ progressColor: Colors.lightBlueAccent,
+ animateFromLastPercent: true,
+ animation: true,
+ animationDuration: 500,
+ percent: rpm / 8000,
+ barRadius: Radius.circular(15),
+ leading: Text(
+ 'RPM',
+ style: SizeConfig.smallnormalfont,
+ ),
+ trailing: Text(
+ rpm.toString(),
+ style: SizeConfig.smallnormalfont2,
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+}