summaryrefslogtreecommitdiffstats
path: root/lib/widgets/slider.dart
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2022-12-24 15:30:10 -0500
committerScott Murray <scott.murray@konsulko.com>2022-12-29 01:22:55 -0500
commitfe23ca5ecdabd698917c4e84915151fc32cb335e (patch)
treee9cad647d01f546107dfa820363a80c48e33c6e2 /lib/widgets/slider.dart
parent467221c592123125d6439871f02ef5e9ca0fe777 (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.dart49
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',
+ ),
+ );
+ }
+}