added provider for current link

This commit is contained in:
2025-11-03 15:59:38 +01:00
parent db61809939
commit 7211560b8d
4 changed files with 111 additions and 17 deletions

View File

@@ -1,7 +1,8 @@
// main.dart
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'pages/bookmarks_page.dart';
import 'pages/collections_page.dart';
import 'service/shared_link_provider.dart';
import 'service/storage.dart';
import 'service/share_intent_service.dart';
import 'theme.dart';
@@ -9,7 +10,12 @@ import 'theme.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Storage.initialize();
runApp(const MapsBookmarks());
runApp(
ChangeNotifierProvider(
create: (_) => SharedLinkProvider(),
child: const MapsBookmarks(),
),
);
}
class MapsBookmarks extends StatefulWidget {
@@ -21,15 +27,14 @@ class MapsBookmarks extends StatefulWidget {
class _MapsBookmarksState extends State<MapsBookmarks>
with WidgetsBindingObserver {
final ShareIntentService _shareIntentService = ShareIntentService();
final GlobalKey<NavigatorState> _navigatorKey = GlobalKey<NavigatorState>();
final ShareIntentService _shareIntentService = ShareIntentService();
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
// Check for shared content on app start
_checkForSharedContent();
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
_checkForSharedContent();
}
}
@override
@@ -39,24 +44,20 @@ class _MapsBookmarksState extends State<MapsBookmarks>
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
_checkForSharedContent();
}
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
_checkForSharedContent();
}
Future<void> _checkForSharedContent() async {
final sharedText = await _shareIntentService.getSharedMapsLink();
if (sharedText.isNotEmpty && mounted) {
_handleSharedMapsLink(sharedText);
context.read<SharedLinkProvider>().setCurrentMapsLink(sharedText);
}
}
void _handleSharedMapsLink(String sharedText) {
//TODO: implement
}
@override
Widget build(BuildContext context) {
return MaterialApp(