This commit is contained in:
Artem Kokos
2026-04-14 00:02:02 +07:00
parent 1d31767ee0
commit 8198ea09ae
9 changed files with 403 additions and 4 deletions

View File

@@ -1,10 +1,28 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:workmanager/workmanager.dart';
import 'providers/providers.dart';
import 'screens/homes_screen.dart';
import 'screens/remote_screen.dart';
import 'services/geofence_worker.dart';
/// Top-level callback для workmanager (выполняется в отдельном изоляте).
@pragma('vm:entry-point')
void callbackDispatcher() {
Workmanager().executeTask((taskName, inputData) async {
if (taskName == geofenceTaskName) {
return await executeGeofenceCheck();
}
return true;
});
}
void main() {
WidgetsFlutterBinding.ensureInitialized();
// Инициализация workmanager
Workmanager().initialize(callbackDispatcher, isInDebugMode: false);
runApp(const ProviderScope(child: IgnisApp()));
}
@@ -72,6 +90,10 @@ class _MainGateState extends ConsumerState<MainGate> {
await ref.read(groupsProvider.notifier).initAndRefresh();
// Загружаем info об авторизации (admin / не admin)
await ref.read(authInfoProvider.notifier).load();
// Запускаем / обновляем геофенс-таск если нужно
await syncGeofenceTask(ref.read(homesProvider));
if (mounted) {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (_) => const RemoteScreen()),
@@ -110,4 +132,4 @@ class _MainGateState extends ConsumerState<MainGate> {
),
);
}
}
}