diff options
Diffstat (limited to 'lib/vehicle-signals/vehicle_ac_status_provider.dart')
-rw-r--r-- | lib/vehicle-signals/vehicle_ac_status_provider.dart | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/lib/vehicle-signals/vehicle_ac_status_provider.dart b/lib/vehicle-signals/vehicle_ac_status_provider.dart new file mode 100644 index 0000000..ce6e470 --- /dev/null +++ b/lib/vehicle-signals/vehicle_ac_status_provider.dart @@ -0,0 +1,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(), +); |