This commit is contained in:
@@ -4,10 +4,8 @@ import 'package:media_kit/media_kit.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
import 'package:trainhub_flutter/core/router/app_router.dart';
|
||||
import 'package:trainhub_flutter/core/theme/app_theme.dart';
|
||||
import 'package:trainhub_flutter/domain/services/ai_process_manager.dart';
|
||||
import 'package:trainhub_flutter/data/services/ai_process_manager.dart';
|
||||
import 'package:trainhub_flutter/injection.dart' as di;
|
||||
import 'package:trainhub_flutter/presentation/settings/ai_model_settings_controller.dart';
|
||||
import 'package:trainhub_flutter/presentation/settings/ai_model_settings_state.dart';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
@@ -44,14 +42,10 @@ class TrainHubApp extends ConsumerStatefulWidget {
|
||||
ConsumerState<TrainHubApp> createState() => _TrainHubAppState();
|
||||
}
|
||||
|
||||
class _TrainHubAppState extends ConsumerState<TrainHubApp>
|
||||
with WindowListener {
|
||||
class _TrainHubAppState extends ConsumerState<TrainHubApp> with WindowListener {
|
||||
// Create the router once and reuse it across rebuilds.
|
||||
final _appRouter = AppRouter();
|
||||
|
||||
// Guard flag so we never start the servers more than once per app session.
|
||||
bool _serversStarted = false;
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Lifecycle
|
||||
// -------------------------------------------------------------------------
|
||||
@@ -87,18 +81,6 @@ class _TrainHubAppState extends ConsumerState<TrainHubApp>
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
// Watch the model-settings state and start servers exactly once, the
|
||||
// first time models are confirmed to be present on disk.
|
||||
ref.listen<AiModelSettingsState>(
|
||||
aiModelSettingsControllerProvider,
|
||||
(prev, next) {
|
||||
if (!_serversStarted && next.areModelsValidated) {
|
||||
_serversStarted = true;
|
||||
di.getIt<AiProcessManager>().startServers();
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
return MaterialApp.router(
|
||||
title: 'TrainHub',
|
||||
theme: AppTheme.dark,
|
||||
|
||||
Reference in New Issue
Block a user