Final commit.

This commit is contained in:
Dennis Nemec
2026-06-01 17:12:28 +02:00
parent 3ecbc82885
commit a9bf8ecdd1
385 changed files with 29081 additions and 12089 deletions

View File

@ -1,43 +1,20 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:hl_lieferservice/bloc/app_events.dart';
import 'package:hl_lieferservice/bloc/app_states.dart';
import 'package:hl_lieferservice/main.dart';
import 'package:hl_lieferservice/repository/config.dart';
import '../services/erpframe.dart';
/// App-Bootstrap-Bloc.
///
/// Vor der Backend-Migration lud dieser Bloc eine `hl_server_config.json` aus
/// assets, parste daraus eine `backendUrl` und persistierte sie ins Dateisystem.
/// Mit dem Wechsel auf das Rust-Backend kommt die URL über `BackendConfig`
/// (compile-time, siehe `data/network/backend_config.dart`); der App-Bloc
/// emittiert jetzt nur noch sofort `AppConfigLoaded`, damit die UI ihre
/// üblichen Phasen-Übergänge behält.
class AppBloc extends Bloc<AppEvents, AppState> {
AppBloc() : super(AppInitial()) {
on<AppLoadConfig>(_loadConfig);
}
Future<void> _loadConfig(AppLoadConfig event, Emitter<AppState> emit) async {
emit(AppConfigLoading());
try {
final repository = ConfigurationRepository(path: event.path);
final configuration = LocalDocuFrameConfiguration.fromJson(
json.decode(await rootBundle.loadString("assets/${event.path}")),
);
repository.setDocuFrameConfiguration(configuration);
var config = await repository.getDocuFrameConfiguration();
locator.registerSingleton<LocalDocuFrameConfiguration>(config);
emit(AppConfigLoaded(config: config));
} catch (e, st) {
debugPrint(e.toString());
debugPrint(st.toString());
emit(
AppConfigLoadingFailed(
message: "Fehler beim Laden der Konfigurationsdatei.",
),
);
}
AppBloc() : super(const AppInitial()) {
on<AppLoadConfig>((event, emit) {
emit(const AppConfigLoading());
emit(const AppConfigLoaded());
});
}
}

View File

@ -1,16 +1,27 @@
import '../services/erpframe.dart';
abstract class AppState {}
class AppInitial extends AppState {}
class AppConfigLoading extends AppState {}
class AppConfigLoaded extends AppState {
LocalDocuFrameConfiguration config;
AppConfigLoaded({required this.config});
/// Lifecycle-States des App-Bootstraps.
///
/// Die alte `LocalDocuFrameConfiguration` mit `backendUrl` ist mit der
/// Backend-Migration entfallen — die App-Konfiguration kommt jetzt aus
/// `BackendConfig` (compile-time) und nicht mehr aus einer asset-JSON.
/// Das `AppConfigLoaded`-Signal bleibt als Marker, dass der App-Bootstrap
/// abgeschlossen ist (Networking ist registriert, Token-Provider steht).
abstract class AppState {
const AppState();
}
class AppConfigLoadingFailed extends AppState {
String message;
AppConfigLoadingFailed({required this.message});
}
class AppInitial extends AppState {
const AppInitial();
}
class AppConfigLoading extends AppState {
const AppConfigLoading();
}
class AppConfigLoaded extends AppState {
const AppConfigLoaded();
}
class AppConfigLoadingFailed extends AppState {
const AppConfigLoadingFailed({required this.message});
final String message;
}