diff options
author | Scott Murray <scott.murray@konsulko.com> | 2022-12-24 15:30:10 -0500 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2022-12-29 01:22:55 -0500 |
commit | fe23ca5ecdabd698917c4e84915151fc32cb335e (patch) | |
tree | e9cad647d01f546107dfa820363a80c48e33c6e2 /lib/widgets/slider.dart | |
parent | 467221c592123125d6439871f02ef5e9ca0fe777 (diff) |
Rework temperature controls
Rework the temperature controls to use NumberPicker widgets so they
function more like a user would expect. The associated Riverpod
providers have been updated to track the temperature value directly,
and some minor layout tweaks have also been made.
Bug-AGL: SPEC-4644
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I069e0bd53c79d73cc7a60045309efdfeb9409fbc
Diffstat (limited to 'lib/widgets/slider.dart')
-rw-r--r-- | lib/widgets/slider.dart | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/widgets/slider.dart b/lib/widgets/slider.dart new file mode 100644 index 0000000..f8bd459 --- /dev/null +++ b/lib/widgets/slider.dart @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: Apache-2.0 + +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_hvac/provider.dart'; + +import '../kuksa-server/vehicle_methods.dart'; +import '../size.dart'; + +class SliderControl extends ConsumerWidget { + WebSocket socket; + SliderControl({Key? key, required this.socket}) : super(key: key); + + @override + Widget build(BuildContext context, ref) { + return SizedBox( + height: SizeConfig.safeBlockVertical * 2, + width: SizeConfig.screenWidth * 0.5, + child: Slider( + value: ref.watch(fanSpeedProvider).toDouble(), + onChanged: (value) { + ref.read(fanSpeedProvider.notifier).update(value.toInt()); + VISS.set(socket, ref, 'Vehicle.Cabin.HVAC.Station.Row1.Left.FanSpeed', + value.toInt().toString()); + VISS.set( + socket, + ref, + 'Vehicle.Cabin.HVAC.Station.Row1.Right.FanSpeed', + value.toInt().toString()); + VISS.set(socket, ref, 'Vehicle.Cabin.HVAC.Station.Row2.Left.FanSpeed', + value.toInt().toString()); + VISS.set( + socket, + ref, + 'Vehicle.Cabin.HVAC.Station.Row2.Right.FanSpeed', + value.toInt().toString()); + }, + min: 0, + max: 100, + activeColor: Colors.green, + inactiveColor: Colors.white70, + thumbColor: Colors.grey, + label: 'Fan Speed', + ), + ); + } +} |