summaryrefslogtreecommitdiffstats
path: root/lib/screen
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2024-01-05 18:50:51 -0500
committerScott Murray <scott.murray@konsulko.com>2024-01-05 18:52:32 -0500
commitdbb971abeaa2beff2a13e421f8cca83b3054db34 (patch)
tree049af6bf56c53534807f6cb5de9803dcb111c4e6 /lib/screen
parentda47b0611f7495fb9f4727449721c18c9a617217 (diff)
Fix unit handling
Fix distance unit handling with respect to the VSS signal for that, and add temperature unit support. Bug-AGL: SPEC-5045 Change-Id: I9b25c36c36d19da55f1b9bff7f380c55d592d5d6 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Diffstat (limited to 'lib/screen')
-rw-r--r--lib/screen/home.dart15
-rw-r--r--lib/screen/widgets/gauges/speed_gauge_animation_wrapper.dart6
-rw-r--r--lib/screen/widgets/turn_signal.dart12
3 files changed, 21 insertions, 12 deletions
diff --git a/lib/screen/home.dart b/lib/screen/home.dart
index f154550..d9bfa32 100644
--- a/lib/screen/home.dart
+++ b/lib/screen/home.dart
@@ -67,6 +67,15 @@ class _HomeState extends ConsumerState<Home> {
final String performanceMode = ref.watch(vehicleStatusProvider.select((p) => p.performanceMode));
final String selectedGear = ref.watch(vehicleStatusProvider.select((p) => p.selectedGear));
final double ambientAirTemp = ref.watch(vehicleStatusProvider.select((p) => p.ambientAirTemp));
+ final TemperatureUnit tempUnit = ref.watch(vehicleStatusProvider.select((p) => p.temperatureUnit));
+
+ String ambientAirTempString = "";
+ if (tempUnit == TemperatureUnit.celsius) {
+ ambientAirTempString += "${ambientAirTemp.toStringAsFixed(0)} ${"\u00B0"}C";
+ } else {
+ ambientAirTempString += "${((ambientAirTemp * 9 / 5) + 32).toStringAsFixed(0)} ${"\u00B0"}F";
+ }
+
final clock = ref.watch(clockProvider);
final windowHeight = MediaQuery.of(context).size.height;
final windowWidth = MediaQuery.of(context).size.width;
@@ -105,8 +114,8 @@ class _HomeState extends ConsumerState<Home> {
children: [
TurnSignal(
screenHeight: screenHeight,
- isLefton: isLeftIndicator,
- isRighton: isRightIndicator,
+ isLeftOn: isLeftIndicator,
+ isRightOn: isRightIndicator,
),
Flex(
direction: Axis.horizontal,
@@ -146,7 +155,7 @@ class _HomeState extends ConsumerState<Home> {
SizedBox(
width: (30 * screenHeight) / 480),
Text(
- "${ambientAirTemp} ${"\u00B0"}C",
+ ambientAirTempString,
style: TextStyle(
color: const Color.fromARGB(
255, 184, 183, 183),
diff --git a/lib/screen/widgets/gauges/speed_gauge_animation_wrapper.dart b/lib/screen/widgets/gauges/speed_gauge_animation_wrapper.dart
index dfa4277..78b907e 100644
--- a/lib/screen/widgets/gauges/speed_gauge_animation_wrapper.dart
+++ b/lib/screen/widgets/gauges/speed_gauge_animation_wrapper.dart
@@ -16,12 +16,12 @@ class SpeedGauge extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final double speed = ref.watch(vehicleStatusProvider.select((p) => p.speed));
- final String units = ref.watch(vehicleStatusProvider.select((p) => p.vehicleDistanceUnit));
+ final DistanceUnit unit = ref.watch(vehicleStatusProvider.select((p) => p.distanceUnit));
const double minSpeed = 0;
const double maxSpeed = 240;
const Duration sweepDuration = Duration(milliseconds: 200);
- double speedScaling = (units == "mi") ? 0.621504 : 1.0;
+ double speedScaling = (unit == DistanceUnit.miles) ? 0.621504 : 1.0;
final animationController = useAnimationController(
lowerBound: minSpeed,
@@ -39,7 +39,7 @@ class SpeedGauge extends HookConsumerWidget {
low: minSpeed,
high: maxSpeed,
mainValue: animationController.value,
- label: (units == "mi") ? "mph" : "Km/h",
+ label: (unit == DistanceUnit.miles) ? "mph" : "km/h",
zeroTickLabel: minSpeed.toInt().toString(),
maxTickLabel: maxSpeed.toInt().toString(),
inPrimaryColor: gaugeColor?.inPrimary,
diff --git a/lib/screen/widgets/turn_signal.dart b/lib/screen/widgets/turn_signal.dart
index 446fbb8..861ffd4 100644
--- a/lib/screen/widgets/turn_signal.dart
+++ b/lib/screen/widgets/turn_signal.dart
@@ -6,13 +6,13 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
class TurnSignal extends HookConsumerWidget {
final double screenHeight;
- final bool isLefton;
- final bool isRighton;
+ final bool isLeftOn;
+ final bool isRightOn;
const TurnSignal({
Key? key,
required this.screenHeight,
- required this.isLefton,
- required this.isRighton,
+ required this.isLeftOn,
+ required this.isRightOn,
}) : super(key: key);
double calcPadding(double value, double height) {
// values wrt to values at 720 height
@@ -38,7 +38,7 @@ class TurnSignal extends HookConsumerWidget {
children: [
Image.asset(
"images/left.png",
- color: (isLefton)
+ color: (isLeftOn)
? Color.lerp(
Colors.black,
const Color.fromARGB(255, 99, 251, 104),
@@ -48,7 +48,7 @@ class TurnSignal extends HookConsumerWidget {
),
Image.asset(
"images/right.png",
- color: (isRighton)
+ color: (isRightOn)
? Color.lerp(
Colors.black,
const Color.fromARGB(255, 99, 251, 104),