Request location permission on app startup
Changed RoutesPage from ConsumerWidget to ConsumerStatefulWidget to request location permission when app launches. Permission is requested silently without blocking UI and silently logged on grant/denial. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
70e4a439b9
commit
1a1d00f344
@ -5,12 +5,52 @@ import '../providers/providers.dart';
|
|||||||
import '../utils/breakpoints.dart';
|
import '../utils/breakpoints.dart';
|
||||||
import '../components/collapsible_routes_sidebar.dart';
|
import '../components/collapsible_routes_sidebar.dart';
|
||||||
import '../components/dark_mode_map.dart';
|
import '../components/dark_mode_map.dart';
|
||||||
|
import '../services/location_permission_service.dart';
|
||||||
import 'deliveries_page.dart';
|
import 'deliveries_page.dart';
|
||||||
import 'settings_page.dart';
|
import 'settings_page.dart';
|
||||||
|
|
||||||
class RoutesPage extends ConsumerWidget {
|
class RoutesPage extends ConsumerStatefulWidget {
|
||||||
const RoutesPage({super.key});
|
const RoutesPage({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
ConsumerState<RoutesPage> createState() => _RoutesPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _RoutesPageState extends ConsumerState<RoutesPage> {
|
||||||
|
late LocationPermissionService _permissionService;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_permissionService = LocationPermissionService();
|
||||||
|
_requestLocationPermissionOnce();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _requestLocationPermissionOnce() async {
|
||||||
|
try {
|
||||||
|
final hasPermission = await _permissionService.hasLocationPermission();
|
||||||
|
if (!hasPermission && mounted) {
|
||||||
|
final result = await _permissionService.requestLocationPermission();
|
||||||
|
result.when(
|
||||||
|
granted: () {
|
||||||
|
debugPrint('Location permission granted');
|
||||||
|
},
|
||||||
|
denied: () {
|
||||||
|
debugPrint('Location permission denied');
|
||||||
|
},
|
||||||
|
permanentlyDenied: () {
|
||||||
|
debugPrint('Location permission permanently denied');
|
||||||
|
},
|
||||||
|
error: (message) {
|
||||||
|
debugPrint('Location permission error: $message');
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
debugPrint('Error requesting location permission: $e');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void _navigateToDeliveries(BuildContext context, DeliveryRoute route) {
|
void _navigateToDeliveries(BuildContext context, DeliveryRoute route) {
|
||||||
Navigator.of(context).push(
|
Navigator.of(context).push(
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user