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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
// SPDX-License-Identifier: Apache-2.0
import 'package:flutter_riverpod/flutter_riverpod.dart';
class VehicleAcStatus {
late bool isAcActive;
late bool isFrontDefrosterActive;
late bool isRearDefrosterActive;
late bool isAcDirectionUp;
late bool isAcDirectionDown;
late bool isAcDirectionMiddle;
late bool isRecirculationActive;
late bool isAutoActive;
late bool isFreshAirCirculateActive;
VehicleAcStatus({
required this.isAcActive,
required this.isAcDirectionDown,
required this.isAcDirectionMiddle,
required this.isAcDirectionUp,
required this.isFrontDefrosterActive,
required this.isRearDefrosterActive,
required this.isRecirculationActive,
required this.isAutoActive,
required this.isFreshAirCirculateActive,
});
VehicleAcStatus copywith({
bool? isAcActive,
bool? isAcDirectionDown,
bool? isAcDirectionMiddle,
bool? isAcDirectionUp,
bool? isFrontDefrosterActive,
bool? isRearDefrosterActive,
bool? isRecirculationActive,
bool? isAutoActive,
bool? isFreshAirCirculateActive,
}) {
return VehicleAcStatus(
isAcActive: isAcActive ?? this.isAcActive,
isAcDirectionDown: isAcDirectionDown ?? this.isAcDirectionDown,
isAcDirectionMiddle: isAcDirectionMiddle ?? this.isAcDirectionMiddle,
isAcDirectionUp: isAcDirectionUp ?? this.isAcDirectionUp,
isFrontDefrosterActive:
isFrontDefrosterActive ?? this.isFrontDefrosterActive,
isRearDefrosterActive:
isRearDefrosterActive ?? this.isRearDefrosterActive,
isRecirculationActive:
isRecirculationActive ?? this.isRecirculationActive,
isAutoActive: isAutoActive ?? this.isAutoActive,
isFreshAirCirculateActive: isFreshAirCirculateActive ?? this.isFreshAirCirculateActive,
);
}
}
class VehicleAcStatusNotifier extends StateNotifier<VehicleAcStatus> {
static VehicleAcStatus intial_value = VehicleAcStatus(
isAcActive: false,
isAcDirectionDown: false,
isAcDirectionMiddle: false,
isAcDirectionUp: false,
isFrontDefrosterActive: false,
isRearDefrosterActive: false,
isRecirculationActive: false,
isAutoActive: false,
isFreshAirCirculateActive : false,
);
VehicleAcStatusNotifier() : super(intial_value);
void update({
bool? isAcActive,
bool? isAcDirectionDown,
bool? isAcDirectionUp,
bool? isAcDirectionMiddle,
bool? isFrontDefrosterActive,
bool? isRearDefrosterActive,
bool? isRecirculationActive,
bool? isAutoActive,
bool? isFreshAirCirculateActive,
}) {
state = state.copywith(
isAcActive: isAcActive,
isAcDirectionDown: isAcDirectionDown,
isAcDirectionMiddle: isAcDirectionMiddle,
isAcDirectionUp: isAcDirectionUp,
isFrontDefrosterActive: isFrontDefrosterActive,
isRearDefrosterActive: isRearDefrosterActive,
isRecirculationActive: isRecirculationActive,
isAutoActive : isAutoActive,
isFreshAirCirculateActive : isFreshAirCirculateActive,
);
}
}
final vehicleAcStatusProvider = StateNotifierProvider<VehicleAcStatusNotifier, VehicleAcStatus>(
(ref) => VehicleAcStatusNotifier(),
);
|