diff options
author | Scott Murray <scott.murray@konsulko.com> | 2024-01-04 20:13:01 -0500 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2024-01-04 20:20:16 -0500 |
commit | 31438c5081e8ee5b520787a6e64b9372ec678886 (patch) | |
tree | 3c2fd4d08d0ad5070ade0f6111fe5961ed39a8da /lib/data/models | |
parent | 5588d1d26f1be968af6809e43507d7be0fadf434 (diff) |
Configurable units fixes
Notable changes:
- Add pressure unit to the units model.
- Add tire pressure unit configuration page under settings.
- Rework the VSS client, provider, and the associated handling in
the vehicle and audio state providers to make the signal updating
code reusable for processing the result of VAL API get commands.
- Add logic to get the initial values of the used VSS signals so
the initial application state looks sane in demo scenarios.
- Add VSS signal support to the units provider so that changes will
be pushed out for e.g. IC use.
- Fix pressure unit use in various widgets.
- Fix up range calculation for dashboard to correctly account for
units and the incoming VSS value being in meters.
- Fix some unit naming inconsistencies around capitalization.
Bug-AGL: SPEC-5031, SPEC-5032
Change-Id: I33ac735dfbe35283bd30c92aa157cbdb7af1837c
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Diffstat (limited to 'lib/data/models')
-rw-r--r-- | lib/data/models/units.dart | 17 | ||||
-rw-r--r-- | lib/data/models/vehicle.dart | 16 |
2 files changed, 21 insertions, 12 deletions
diff --git a/lib/data/models/units.dart b/lib/data/models/units.dart index 9e71213..c299a12 100644 --- a/lib/data/models/units.dart +++ b/lib/data/models/units.dart @@ -4,32 +4,39 @@ enum DistanceUnit { kilometers, miles } enum TemperatureUnit { celsius, fahrenheit } +enum PressureUnit { kilopascals, psi } + @immutable class Units { final DistanceUnit distanceUnit; final TemperatureUnit temperatureUnit; + final PressureUnit pressureUnit; const Units( this.distanceUnit, this.temperatureUnit, + this.pressureUnit, ); const Units.initial() : distanceUnit = DistanceUnit.kilometers, - temperatureUnit = TemperatureUnit.celsius; + temperatureUnit = TemperatureUnit.celsius, + pressureUnit = PressureUnit.kilopascals; Units copyWith({ DistanceUnit? distanceUnit, TemperatureUnit? temperatureUnit, + PressureUnit? pressureUnit, }) { return Units( distanceUnit ?? this.distanceUnit, temperatureUnit ?? this.temperatureUnit, + pressureUnit ?? this.pressureUnit, ); } @override String toString() => - 'Units(distanceUnit: $distanceUnit, temperatureUnit: $temperatureUnit)'; + 'Units(distanceUnit: $distanceUnit, temperatureUnit: $temperatureUnit, pressureUnit: $pressureUnit)'; @override bool operator ==(Object other) { @@ -37,9 +44,11 @@ class Units { return other is Units && other.distanceUnit == distanceUnit && - other.temperatureUnit == temperatureUnit; + other.temperatureUnit == temperatureUnit && + other.pressureUnit == pressureUnit; } @override - int get hashCode => distanceUnit.hashCode ^ temperatureUnit.hashCode; + int get hashCode => + distanceUnit.hashCode ^ temperatureUnit.hashCode ^ pressureUnit.hashCode; } diff --git a/lib/data/models/vehicle.dart b/lib/data/models/vehicle.dart index ad76620..dfeae05 100644 --- a/lib/data/models/vehicle.dart +++ b/lib/data/models/vehicle.dart @@ -57,10 +57,10 @@ class Vehicle { fuelLevel = 0, isChildLockActiveLeft = false, isChildLockActiveRight = true, - frontLeftTire = 33, - frontRightTire = 31, - rearLeftTire = 31, - rearRightTire = 32, + frontLeftTire = 228, + frontRightTire = 214, + rearLeftTire = 214, + rearRightTire = 221, isAirConditioningActive = false, isFrontDefrosterActive = false, isRearDefrosterActive = false, @@ -79,10 +79,10 @@ class Vehicle { fuelLevel = 49, isChildLockActiveLeft = false, isChildLockActiveRight = true, - frontLeftTire = 33, - frontRightTire = 31, - rearLeftTire = 31, - rearRightTire = 32, + frontLeftTire = 228, + frontRightTire = 214, + rearLeftTire = 214, + rearRightTire = 221, isAirConditioningActive = false, isFrontDefrosterActive = false, isRearDefrosterActive = false, |