From 5ef290f3fe7bac7cad26aae16d884cd23dce0e30 Mon Sep 17 00:00:00 2001 From: Mica White Date: Fri, 26 Dec 2025 18:49:24 -0500 Subject: Fix permissioning --- lib/main.dart | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index f6bbb92..273f93f 100755 --- a/lib/main.dart +++ b/lib/main.dart @@ -17,7 +17,7 @@ extension on SpeedUnit { }; } -void main() { +void main() async { runApp(const MyApp()); } @@ -56,9 +56,7 @@ class _HomePageState extends State { SpeedUnit _speedUnit = SpeedUnit.milesPerHour; LocationSettings _locationSettings = LocationSettings(); - @override - void initState() { - super.initState(); + _initPositionStream() { _positionStream = Geolocator.getPositionStream( locationSettings: _locationSettings, @@ -72,6 +70,26 @@ class _HomePageState extends State { }); } + @override + void initState() { + super.initState(); + + Geolocator.checkPermission() + .then( + (permission) => permission == LocationPermission.denied + ? Geolocator.requestPermission() + : permission, + ) + .then((permission) { + if (![ + LocationPermission.deniedForever, + LocationPermission.denied, + ].contains(permission)) { + _initPositionStream(); + } + }); + } + @override void dispose() { super.dispose(); @@ -106,11 +124,11 @@ class _HomePageState extends State { children: [ Flex(direction: Axis.horizontal), Text( - '${_speedUnit.fromMetersPerSecond(_speed)} ${_speedUnit.acronym}', + '${_speedUnit.fromMetersPerSecond(_speed).round()} ${_speedUnit.acronym}', style: Theme.of(context).textTheme.displayLarge, ), Text( - '± ${_speedUnit.fromMetersPerSecond(_speedAccuracy)} ${_speedUnit.acronym}', + '± ${_speedUnit.fromMetersPerSecond(_speedAccuracy).round()} ${_speedUnit.acronym}', style: Theme.of(context).textTheme.displaySmall, ), ], -- cgit v1.2.3