Files
maps_bookmarks/lib/main.dart
2025-11-03 13:29:51 +01:00

74 lines
1.8 KiB
Dart

// main.dart
import 'package:flutter/material.dart';
import 'pages/bookmarks_page.dart';
import 'pages/collections_page.dart';
import 'service/storage.dart';
import 'service/share_intent_service.dart';
import 'theme.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Storage.initialize();
runApp(const MapsBookmarks());
}
class MapsBookmarks extends StatefulWidget {
const MapsBookmarks({super.key});
@override
State<MapsBookmarks> createState() => _MapsBookmarksState();
}
class _MapsBookmarksState extends State<MapsBookmarks>
with WidgetsBindingObserver {
final ShareIntentService _shareIntentService = ShareIntentService();
final GlobalKey<NavigatorState> _navigatorKey = GlobalKey<NavigatorState>();
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
// Check for shared content on app start
_checkForSharedContent();
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
_checkForSharedContent();
}
}
Future<void> _checkForSharedContent() async {
final sharedText = await _shareIntentService.getSharedMapsLink();
if (sharedText.isNotEmpty && mounted) {
_handleSharedMapsLink(sharedText);
}
}
void _handleSharedMapsLink(String sharedText) {
//TODO: implement
}
@override
Widget build(BuildContext context) {
return MaterialApp(
navigatorKey: _navigatorKey,
theme: lightTheme,
darkTheme: darkTheme,
initialRoute: CollectionsPage.routeName,
routes: {
CollectionsPage.routeName: (context) => const CollectionsPage(),
BookmarksPage.routeName: (context) => const BookmarksPage(),
},
);
}
}