diff options
author | Scott Murray <scott.murray@konsulko.com> | 2023-12-17 15:48:21 -0500 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2023-12-18 13:28:28 +0000 |
commit | 4ae68f5be11d110f2df10d54377d970921e30a21 (patch) | |
tree | b37b5cb3c6964fbaeaa95edc1edeb44d615912e9 /lib/data/data_providers/hybrid_notifier.dart | |
parent | dda6c8502a3fa1e50654c4cca934b4b846bbca98 (diff) |
Implement audio settings
Changes:
- Rework KUKSA.val "VAL" gRPC API implementation to separate it
from the vehicle model + notifier, and more easily allow using
it from other notifiers.
- Move volume handling from the vehicle model + notifier to the
audio set for clarity.
- Wire up the new VSS audio signals in the audio notifier. The
"rearFront" variable naming has been changed to "fade" in
several places to match expected terminology.
- Add a balance slider to the audio settings page.
- Change the min/max labels on the fade slider to be Text instead
of Icon's since we do not have the equivalent to use with the
balance slider, and text seems like it'd be what you would want
for any potential future internationalization.
- Rework configuration file to be usable from anywhere via a
RiverPod Provider instead of tied to the vehicle notifier code,
and shifted the background and hybrid animation flags to be handled
with it. This change removes the built-in asset with defaults in
favor of maintaining the defaults for the ICS environment in the
AppConfig and KuksaConfig classes, with a goal of avoiding the need
for using async methods in the config provider.
- Change some notifiers from using StateNotifier to the RiverPod
2.0 Notifier class for improved flexibility. The other notifiers
will be updated in future work.
- Added select's to several ref.watches in the new hybrid animation
code to avoid unnecessary repaints.
- Fix several spelling issues in method and parameter names
across the codebase.
Bug-AGL: SPEC-5001
Change-Id: Iefae417fa870405d659303497d96e519e6b6d1de
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Diffstat (limited to 'lib/data/data_providers/hybrid_notifier.dart')
-rw-r--r-- | lib/data/data_providers/hybrid_notifier.dart | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/lib/data/data_providers/hybrid_notifier.dart b/lib/data/data_providers/hybrid_notifier.dart index 3668f61..7381f5c 100644 --- a/lib/data/data_providers/hybrid_notifier.dart +++ b/lib/data/data_providers/hybrid_notifier.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_local_variable -import '../../export.dart'; +import 'package:flutter_ics_homescreen/export.dart'; class HybridNotifier extends StateNotifier<Hybrid> { HybridNotifier(super.state); @@ -9,38 +9,44 @@ class HybridNotifier extends StateNotifier<Hybrid> { switch (hybridState) { case HybridState.idle: state = state.copyWith( - topArrowState: ArrowState.blue, - leftArrowState: ArrowState.blue, - rightArrowState: ArrowState.blue, - batteryState: BatteryState.white, + hybridState: hybridState, + topArrowState: ArrowState.blue, + leftArrowState: ArrowState.blue, + rightArrowState: ArrowState.blue, + batteryState: BatteryState.white, ); break; case HybridState.engineOutput: state = state.copyWith( - topArrowState: ArrowState.red, - leftArrowState: ArrowState.red, - rightArrowState: ArrowState.blue, - batteryState: BatteryState.red, + hybridState: hybridState, + topArrowState: ArrowState.red, + leftArrowState: ArrowState.red, + rightArrowState: ArrowState.blue, + batteryState: BatteryState.red, ); break; case HybridState.regenerativeBreaking: state = state.copyWith( + hybridState: hybridState, topArrowState: ArrowState.blue, leftArrowState: ArrowState.blue, rightArrowState: ArrowState.green, - batteryState: BatteryState.green); - + batteryState: BatteryState.green + ); break; - case HybridState.baterryOutput: + case HybridState.batteryOutput: state = state.copyWith( + hybridState: hybridState, topArrowState: ArrowState.blue, leftArrowState: ArrowState.blue, rightArrowState: ArrowState.yellow, - batteryState: BatteryState.yellow); + batteryState: BatteryState.yellow + ); break; default: + state = state.copyWith(hybridState: hybridState); + break; } - state = state.copyWith(hybridState: hybridState); } void updateHybridState(double speed, double engineSpeed, bool brake) { @@ -55,25 +61,23 @@ class HybridNotifier extends StateNotifier<Hybrid> { // Variable for storing the average value of RPM double avgRpm = 0.0; - if (speed == 0 && engineSpeed == 0) { // Set idle state. currentState = HybridState.idle; } else if (engineSpeed > 0 && speed > 0) { - // Set stan na engine output state.. + // Set engine output state.. currentState = HybridState.engineOutput; } else if (speed < 0 && brake) { - // Set regenerative breaking state + // Set regenerative breaking state currentState = HybridState.regenerativeBreaking; } else if (speed > 0 && engineSpeed <= 0) { // Set battery output state - currentState = HybridState.baterryOutput; + currentState = HybridState.batteryOutput; } // Update hybrid state if (currentState != previousState) { - //state = state.copyWith(hybridState: currentState); setHybridState(currentState); } } |