dynamic theme, basic category settings

This commit is contained in:
2024-02-25 13:22:45 +01:00
parent 2006ebf5cb
commit 2b53d1ab74
20 changed files with 372 additions and 146 deletions

View File

@@ -16,10 +16,18 @@ class MetadataRepository {
required jsonRepository,
}) : _jsonRepository = jsonRepository;
List<Category> getCategories() {
return _categoriesController.value;
}
Stream<List<Category>> getCategoriesStream() {
return _categoriesController.asBroadcastStream();
}
List<Budget> getBudgets() {
return _budgetController.value;
}
Stream<List<Budget>> getBudgetsStream() {
return _budgetController.asBroadcastStream();
}
@@ -32,30 +40,33 @@ class MetadataRepository {
return _accountController.asBroadcastStream();
}
loadMetadata() async {
void loadMetadata() async {
Metadata metadata = await _jsonRepository.loadJson(Metadata(), MetadataFactory());
_broadcastMetadata(metadata);
}
saveCategories(List<Category> categories) async {
Future<List<Category>> saveCategories(List<Category> categories) async {
Metadata metadata = _constructMetadataFromControllers();
metadata.categories = categories;
await _jsonRepository.saveJson(metadata);
_categoriesController.add(categories);
return categories;
}
saveBudgets(List<Budget> budgets) async {
Future<List<Budget>> saveBudgets(List<Budget> budgets) async {
Metadata metadata = _constructMetadataFromControllers();
metadata.budgets = budgets;
await _jsonRepository.saveJson(metadata);
_budgetController.add(budgets);
return budgets;
}
saveAccounts(List<Account> accounts) async {
Future<List<Account>> saveAccounts(List<Account> accounts) async {
Metadata metadata = _constructMetadataFromControllers();
metadata.accounts = accounts;
await _jsonRepository.saveJson(metadata);
_accountController.add(accounts);
return accounts;
}
deleteMetadata() async {