import 'package:fluent_reader_lite/utils/global.dart'; import 'package:fluent_reader_lite/utils/store.dart'; import 'package:flutter/cupertino.dart'; class GroupsModel with ChangeNotifier { Map> _groups = Store.getGroups(); List uncategorized = Store.getUncategorized(); Map> get groups => _groups; set groups(Map> groups) { _groups = groups; updateUncategorized(); notifyListeners(); Store.setGroups(groups); } void updateUncategorized({force: false}) { if (uncategorized != null || force) { final sids = Set.from( Global.sourcesModel.getSources().map((s) => s.id) ); for (var group in _groups.values) { for (var sid in group) { sids.remove(sid); } } uncategorized = sids.toList(); Store.setUncategorized(uncategorized); } } bool get showUncategorized => uncategorized != null; set showUncategorized(bool value) { if (showUncategorized != value) { if (value) { updateUncategorized(force: true); } else { uncategorized = null; Store.setUncategorized(null); } notifyListeners(); } } }