diff options
author | 2021-12-06 14:51:07 +0900 | |
---|---|---|
committer | 2021-12-06 14:51:07 +0900 | |
commit | 122c32589fb76afc4d04252930221e91c1d31a5f (patch) | |
tree | 4fa5a25c6658546e13007e1c2e900b64c208f2be /lib/homescreen_model.dart | |
parent | d7b7bfc0ecc141c97725448f17fda3512a9245a5 (diff) |
Preserve state between page changes
Add more interactive widgets
Diffstat (limited to 'lib/homescreen_model.dart')
-rw-r--r-- | lib/homescreen_model.dart | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/lib/homescreen_model.dart b/lib/homescreen_model.dart new file mode 100644 index 0000000..7c1a26f --- /dev/null +++ b/lib/homescreen_model.dart @@ -0,0 +1,68 @@ +import 'dart:collection'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +enum SwitchId { + hvacLeftSeat, + hvacRigthSeat, + hvacAc, + hvacAuto, + hvacCirculation, + hvacFan, + hvacAirDown, + hvacAirUp, + hvacFront, + hvacRear, +} + +enum TemperatureId { leftSeat, rightSeat } + +class HomescreenModel extends ChangeNotifier { + // HVAC page + + // fan speed + double _fanSpeed = 20; + + double get fanSpeed => _fanSpeed; + + set fanSpeed(double newhvacFanSpeed) { + _fanSpeed = newhvacFanSpeed; + notifyListeners(); + } + + // switch buttons + HashMap _switches = new HashMap<SwitchId, bool>(); + + bool getSwitchState(SwitchId id) => _switches[id] ?? false; + + void setSwitchState(SwitchId id, bool newValue) { + _switches[id] = newValue; + notifyListeners(); + } + + void flipSwitch(SwitchId id) { + _switches[id] = !_switches[id]; + notifyListeners(); + } + + // temperatures + HashMap _temperatures = new HashMap<TemperatureId, int>(); + + int getTemperature(TemperatureId id) => _temperatures[id] ?? 22; + + void setTemperature(TemperatureId id, int newTemp) { + _temperatures[id] = newTemp; + notifyListeners(); + } + + HomescreenModel() { + // initialize the values + for (var id in SwitchId.values) { + _switches[id] = false; + } + for (var id in TemperatureId.values) { + _temperatures[id] = 22; + } + } +} |