From 220eae3eb135eac5b03122d95d6fbc8c3bde2513 Mon Sep 17 00:00:00 2001 From: uvok Date: Fri, 1 Aug 2025 15:07:26 +0200 Subject: Add proper selection/setting motive --- lib/view_model/badge_motive_view_model.dart | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'lib/view_model/badge_motive_view_model.dart') diff --git a/lib/view_model/badge_motive_view_model.dart b/lib/view_model/badge_motive_view_model.dart index bf2a910..6746827 100644 --- a/lib/view_model/badge_motive_view_model.dart +++ b/lib/view_model/badge_motive_view_model.dart @@ -14,18 +14,40 @@ // along with this program. If not, see . import 'package:flutter/foundation.dart'; +import 'package:logger/logger.dart'; import 'package:uvok_epaper_badge/model/badge_motive.dart'; import 'package:uvok_epaper_badge/model/motive_selection/badge_motive_selection.dart'; import 'package:uvok_epaper_badge/model/motive_selection/mock_badge_motive_selection.dart'; +Logger logger = Logger(); + class BadgeMotiveViewModel extends ChangeNotifier { final BadgeMotiveSelection _motivSelect = MockBadgeMotiveSelection(); List _motives = []; + bool _busy = false; + bool get allowSelection => !_busy; List get motives => _motives; Future updateMotives() async { + if (_busy) return; + _busy = true; + notifyListeners(); + _motives = await _motivSelect.getMotives(); + _busy = false; + notifyListeners(); + } + + Future setMotive(BadgeMotive motive) async { + if (_busy) return; + + _busy = true; + notifyListeners(); + logger.t(">Set motive to ${motive.id}"); + await _motivSelect.setCurrentMotive(motive); + logger.t("