// 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 { 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( (ref) => VehicleAcStatusNotifier(), );