Files
maps_bookmarks/lib/main.dart
marco 77a647d17d
All checks were successful
Flutter APK Build / Calculate Version (pull_request) Successful in 14s
Flutter APK Build / Build Flutter APK (pull_request) Successful in 6m35s
Flutter APK Build / Create Release (pull_request) Has been skipped
[fix] Added basic locatlization
2026-01-21 13:50:24 +01:00

90 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart';
import 'l10n/app_localizations.dart';
import 'pages/collection_page.dart';
import 'pages/collections_list_page.dart';
import 'pages/search_page.dart';
import 'service/search_provider.dart';
import 'service/shared_link_provider.dart';
import 'service/storage.dart';
import 'service/share_intent_service.dart';
import 'theme.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Storage.initialize();
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => SharedLinkProvider()),
ChangeNotifierProvider(create: (_) => SearchProvider()),
],
child: const MapsBookmarks(),
),
);
}
class MapsBookmarks extends StatefulWidget {
const MapsBookmarks({super.key});
@override
State<MapsBookmarks> createState() => _MapsBookmarksState();
}
class _MapsBookmarksState extends State<MapsBookmarks>
with WidgetsBindingObserver {
final GlobalKey<NavigatorState> _navigatorKey = GlobalKey<NavigatorState>();
final ShareIntentService _shareIntentService = ShareIntentService();
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
_checkForSharedContent();
}
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
_checkForSharedContent();
}
Future<void> _checkForSharedContent() async {
final sharedText = await _shareIntentService.getSharedMapsLink();
if (sharedText.isNotEmpty && mounted) {
context.read<SharedLinkProvider>().setCurrentMapsLink(sharedText);
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: [Locale('en'), Locale('de')],
navigatorKey: _navigatorKey,
theme: lightTheme,
darkTheme: darkTheme,
initialRoute: CollectionsListPage.routeName,
routes: {
CollectionsListPage.routeName: (context) => const CollectionsListPage(),
CollectionPage.routeName: (context) => const CollectionPage(),
SearchPage.routeName: (context) => const SearchPage(),
},
);
}
}