custom login implementation, period-based timetable layout with overlap handling, enhanced error dialogs, and unified bottom sheets

This commit is contained in:
2026-05-06 20:42:09 +02:00
parent 50d2941e52
commit 86d12884fc
32 changed files with 1038 additions and 377 deletions
+1 -9
View File
@@ -3,14 +3,9 @@ import 'dart:convert';
import 'package:crypto/crypto.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../state/app/modules/account/bloc/account_bloc.dart';
import '../state/app/modules/account/bloc/account_state.dart';
class AccountData {
static const _usernameField = 'username';
static const _passwordField = 'password';
@@ -54,11 +49,8 @@ class AccountData {
if (!_populated.isCompleted) _populated.complete();
}
Future<void> removeData({BuildContext? context}) async {
Future<void> removeData() async {
_populated = Completer();
if (context != null) {
context.read<AccountBloc>().setStatus(AccountStatus.loggedOut);
}
_username = null;
_password = null;
await _secureStorage.delete(key: _usernameField);