blob: 26b79dad3a5b44ea181d778f56947031b8fb96c9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
import 'package:flutter_ics_homescreen/export.dart';
import 'package:protos/val-api.dart';
class UnitsNotifier extends Notifier<Units> {
@override
Units build() {
return const Units.initial();
}
bool handleSignalUpdate(DataEntry entry) {
bool handled = true;
switch (entry.path) {
case VSSPath.vehicleHmiDistanceUnit:
if (entry.value.hasString()) {
String value = entry.value.string;
DistanceUnit unit = DistanceUnit.kilometers;
if (value != "KILOMETERS") unit = DistanceUnit.miles;
state = state.copyWith(distanceUnit: unit);
}
break;
case VSSPath.vehicleHmiTemperatureUnit:
if (entry.value.hasString()) {
String value = entry.value.string;
TemperatureUnit unit = TemperatureUnit.celsius;
if (value != "C") unit = TemperatureUnit.fahrenheit;
state = state.copyWith(temperatureUnit: unit);
}
break;
case VSSPath.vehicleHmiPressureUnit:
if (entry.value.hasString()) {
String value = entry.value.string;
PressureUnit unit = PressureUnit.kilopascals;
if (value != "KPA") unit = PressureUnit.psi;
state = state.copyWith(pressureUnit: unit);
}
break;
default:
handled = false;
}
return handled;
}
void setDistanceUnit(DistanceUnit unit) {
state = state.copyWith(distanceUnit: unit);
var valClient = ref.read(valClientProvider);
valClient.setString(
VSSPath.vehicleHmiDistanceUnit,
unit == DistanceUnit.kilometers ? "KILOMETERS" : "MILES",
true,
);
}
void setTemperatureUnit(TemperatureUnit unit) {
state = state.copyWith(temperatureUnit: unit);
var valClient = ref.read(valClientProvider);
valClient.setString(
VSSPath.vehicleHmiTemperatureUnit,
unit == TemperatureUnit.celsius ? "C" : "F",
true,
);
}
void setPressureUnit(PressureUnit unit) {
state = state.copyWith(pressureUnit: unit);
var valClient = ref.read(valClientProvider);
valClient.setString(
VSSPath.vehicleHmiPressureUnit,
unit == PressureUnit.kilopascals ? "KPA" : "PSI",
true,
);
}
}
|