Files
geo_front/lib/main.dart
T
dmit.b 5f59e17da8 Add Android background geolocation with notification error handling
Add flutter_background_geolocation for background location tracking on Android.
Service automatically sends coordinates to server when app is in background.
Error messages are shown as system notifications using flutter_local_notifications.
2026-06-25 13:20:39 +03:00

57 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'config/api.dart';
import 'providers/auth_provider.dart';
import 'providers/map_provider.dart';
import 'providers/share_provider.dart';
import 'screens/login_screen.dart';
import 'screens/map_screen.dart';
import 'services/background_geo_service.dart';
import 'services/settings_service.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final settings = SettingsService();
await settings.initialize();
ApiConfig.setBaseUrl(settings.baseUrl);
final bgGeo = BackgroundGeoService();
await bgGeo.init();
runApp(MyApp(settingsService: settings, bgGeo: bgGeo));
}
class MyApp extends StatelessWidget {
final SettingsService settingsService;
final BackgroundGeoService bgGeo;
const MyApp({
super.key,
required this.settingsService,
required this.bgGeo,
});
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
Provider.value(value: settingsService),
ChangeNotifierProvider(create: (_) => AuthProvider()),
ChangeNotifierProvider(create: (_) => MapProvider()),
ChangeNotifierProvider(create: (_) => ShareProvider()),
Provider.value(value: bgGeo),
],
child: MaterialApp(
title: 'Family Safety',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
),
supportedLocales: const [Locale('en', '')],
initialRoute: '/',
routes: {
'/': (_) => const LoginScreen(),
'/map': (_) => const MapScreen(),
},
),
);
}
}