Feat: Macht die Kontoauswahl funktional
This commit is contained in:
@@ -12,8 +12,11 @@ import '../Repositories/account_repository.dart';
|
||||
|
||||
/// Steuert die Interaktion mit den Accounts
|
||||
class AccountController {
|
||||
/// Gibt die aktuell gültige Instanz der Klasse zurück
|
||||
factory AccountController() => _instance;
|
||||
|
||||
/// Erstellt eine neue Instanz dieser Klasse
|
||||
AccountController() {
|
||||
AccountController._internal() {
|
||||
_newAccountDialog = DynamicDialog(
|
||||
title: 'Neues Konto erstellen',
|
||||
icon: Icons.account_balance_wallet,
|
||||
@@ -45,14 +48,32 @@ class AccountController {
|
||||
);
|
||||
}
|
||||
|
||||
static final AccountController _instance = AccountController._internal();
|
||||
BuildContext? _buildContext;
|
||||
|
||||
final AccountRepository _accountRepository = AccountRepository();
|
||||
|
||||
DynamicDialog? _newAccountDialog;
|
||||
DynamicDialog? _errorNameEmptyDialog;
|
||||
DynamicDialog? _accountCreatedDialog;
|
||||
|
||||
Account? _selected;
|
||||
|
||||
/// Stellt das ausgewählte Konto dar, das angezeigt wird
|
||||
Future<Account?> get selected async => _selected ??= (await getAccounts())[0];
|
||||
|
||||
set selected(final Account selected) {
|
||||
_selected = selected;
|
||||
}
|
||||
|
||||
/// Gibt die gespeicherten Konten als Liste zurück
|
||||
Future<List<Account>> getAccounts() async {
|
||||
final List<Account> accounts = await _accountRepository.findBy(
|
||||
orderBy: 'nameAsc',
|
||||
);
|
||||
|
||||
return accounts;
|
||||
}
|
||||
|
||||
/// Startet den Prozess um ein neues Konto anzulegen
|
||||
void newAccountHandler(final BuildContext buildContext) {
|
||||
_buildContext = buildContext;
|
||||
|
||||
Reference in New Issue
Block a user