Replace geofence polling with native Android geofence

This commit is contained in:
Artem Kokos
2026-05-12 11:23:44 +07:00
parent 0a5ef9af17
commit 1963488479
38 changed files with 1099 additions and 1931 deletions

View File

@@ -1,34 +1,11 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:workmanager/workmanager.dart';
import 'app/app_bootstrap.dart';
import 'features/homes/services/geofence_notifications_service.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() {
DartPluginRegistrant.ensureInitialized();
Workmanager().executeTask((taskName, inputData) async {
if (taskName == geofenceTaskName) {
return await executeGeofenceCheck();
}
return true;
});
}
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await GeofenceNotificationsService().initialize();
// Инициализация workmanager
Workmanager().initialize(callbackDispatcher);
runApp(const ProviderScope(child: IgnisApp()));
}