summaryrefslogtreecommitdiffstats
path: root/lib/widgets
diff options
context:
space:
mode:
authorHritik Chouhan <hritikc3961@gmail.com>2022-09-01 20:46:09 +0200
committerHritik Chouhan <hritikc3961@gmail.com>2022-09-16 18:24:43 +0200
commit10945b8056eb2b228c156918a3505882a49a79b8 (patch)
treec8190f53a85ceaf31d9b978cb3d61941bb7a8bc4 /lib/widgets
parentcb0d87bfb6b6daf9ad22ab76d333e70451602406 (diff)
Upload Flutter-Dashboard app for IVI
Flutter Dashboard app which shows Tyres Pressure, Child lock status , Current Location,Speed,RPM,outside and inside Temperature , Average fuel Consumption. update UI and Removed Unused code. Moved kuksa authtoken and mapbox access token and other things to config file. Bug-AGL: SPEC-4547 Signed-off-by: Hritik Chouhan <hritikc3961@gmail.com> Change-Id: I14f42ed453c8279a1e89f8835d2b24e07e4ce376
Diffstat (limited to 'lib/widgets')
-rw-r--r--lib/widgets/child_lock.dart61
-rw-r--r--lib/widgets/fuel_and_speed.dart111
-rw-r--r--lib/widgets/weather.dart84
3 files changed, 256 insertions, 0 deletions
diff --git a/lib/widgets/child_lock.dart b/lib/widgets/child_lock.dart
new file mode 100644
index 0000000..c2efb0d
--- /dev/null
+++ b/lib/widgets/child_lock.dart
@@ -0,0 +1,61 @@
+// 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';
+
+class ChildLockStatus extends StatelessWidget {
+ bool isChildLockActiveLeft;
+ bool isChildLockActiveRight;
+ ChildLockStatus(
+ {Key? key,
+ required this.isChildLockActiveLeft,
+ required this.isChildLockActiveRight})
+ : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ return isChildLockActiveLeft && isChildLockActiveRight
+ ? Column(
+ children: [
+ Text(
+ "Child Lock",
+ style: TextStyle(
+ fontSize: SizeConfig.fontsize / 3, color: Colors.green),
+ ),
+ Text(
+ "Activated",
+ style: TextStyle(
+ fontSize: SizeConfig.fontsize / 3, color: Colors.green),
+ ),
+ SizedBox(
+ width: SizeConfig.safeBlockVertical / 2,
+ ),
+ Icon(
+ Icons.lock,
+ size: SizeConfig.fontsize / 3,
+ color: Colors.green,
+ ),
+ ],
+ )
+ : Column(
+ children: [
+ Text(
+ 'No child Lock',
+ style: TextStyle(
+ fontSize: SizeConfig.fontsize / 2,
+ color: Colors.redAccent,
+ ),
+ ),
+ SizedBox(
+ height: SizeConfig.safeBlockVertical / 2,
+ ),
+ Icon(
+ Icons.lock_open_outlined,
+ size: SizeConfig.fontsize / 4,
+ color: Colors.red,
+ ),
+ ],
+ );
+ }
+}
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,
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/widgets/weather.dart b/lib/widgets/weather.dart
new file mode 100644
index 0000000..fe31c72
--- /dev/null
+++ b/lib/widgets/weather.dart
@@ -0,0 +1,84 @@
+// 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';
+
+class weather extends StatelessWidget {
+ int insideTemperatue;
+ int outsideTempearure;
+ weather(
+ {Key? key,
+ required this.insideTemperatue,
+ required this.outsideTempearure})
+ : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ return Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(SizeConfig.safeBlockVertical * 2),
+ ),
+ height: SizeConfig.safeBlockVertical * 20,
+ width: SizeConfig.blockSizeHorizontal * 20,
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Flexible(
+ flex: 1,
+ child: Text(
+ 'Weather',
+ style: SizeConfig.smallnormalfont,
+ textAlign: TextAlign.left,
+ )),
+ Flexible(
+ flex: 3,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: SizeConfig.safeBlockVertical * 5,
+ width: SizeConfig.blockSizeHorizontal * 5,
+ child: Image.asset(
+ 'images/thermostate.png',
+ color: Colors.orangeAccent,
+ )),
+ SizedBox(
+ height: SizeConfig.safeBlockVertical,
+ ),
+ Row(
+ children: [
+ Column(
+ children: [
+ Text(insideTemperatue.toString() + ' \u00B0',
+ style: SizeConfig.normalfont),
+ Text('Inside', style: SizeConfig.smallnormalfont2),
+ ],
+ ),
+ SizedBox(
+ width: SizeConfig.safeBlockHorizontal,
+ ),
+ Column(
+ children: [
+ Text(
+ outsideTempearure.toString() + ' \u00B0',
+ style: SizeConfig.normalfont,
+ ),
+ Text(
+ 'Outside',
+ style: SizeConfig.smallnormalfont2,
+ ),
+ ],
+ )
+ ],
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+}