diff options
author | Hritik Chouhan <hritikc3961@gmail.com> | 2022-09-01 20:46:09 +0200 |
---|---|---|
committer | Hritik Chouhan <hritikc3961@gmail.com> | 2022-09-16 18:24:43 +0200 |
commit | 10945b8056eb2b228c156918a3505882a49a79b8 (patch) | |
tree | c8190f53a85ceaf31d9b978cb3d61941bb7a8bc4 /lib/widgets | |
parent | cb0d87bfb6b6daf9ad22ab76d333e70451602406 (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.dart | 61 | ||||
-rw-r--r-- | lib/widgets/fuel_and_speed.dart | 111 | ||||
-rw-r--r-- | lib/widgets/weather.dart | 84 |
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, + ), + ], + ) + ], + ), + ], + ), + ), + ], + ), + ); + } +} |