From c07ab607b8ac7a029efcd9fba94403777ae88eb0 Mon Sep 17 00:00:00 2001 From: Ellen Poe Date: Fri, 3 Oct 2025 11:57:36 -0700 Subject: [PATCH] fix: start location updates on permission grant --- .../app/src/main/java/earth/maps/cardinal/MainActivity.kt | 4 ++++ .../src/main/java/earth/maps/cardinal/ui/core/MapViewModel.kt | 4 ---- .../main/java/earth/maps/cardinal/ui/home/NearbyViewModel.kt | 1 - .../earth/maps/cardinal/ui/home/TransitScreenViewModel.kt | 1 - 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/cardinal-android/app/src/main/java/earth/maps/cardinal/MainActivity.kt b/cardinal-android/app/src/main/java/earth/maps/cardinal/MainActivity.kt index f022292..ed00547 100644 --- a/cardinal-android/app/src/main/java/earth/maps/cardinal/MainActivity.kt +++ b/cardinal-android/app/src/main/java/earth/maps/cardinal/MainActivity.kt @@ -157,6 +157,7 @@ class MainActivity : ComponentActivity() { ) { isGranted -> hasLocationPermission = isGranted if (isGranted) { + locationRepository.startContinuousLocationUpdates(this@MainActivity) Log.d(TAG, "Location permission granted") // Request fresh location and animate camera to user's location lifecycleScope.launch { @@ -201,6 +202,9 @@ class MainActivity : ComponentActivity() { hasNotificationPermission = checkNotificationPermission() hasLocationPermission = checkLocationPermission() + if (hasLocationPermission) { + locationRepository.startContinuousLocationUpdates(this@MainActivity) + } // Check if we should show the location permission dialog on first startup if (!appPreferenceRepository.hasPromptedLocation.value && !hasLocationPermission) { diff --git a/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/MapViewModel.kt b/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/MapViewModel.kt index e21cd05..551f30c 100644 --- a/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/MapViewModel.kt +++ b/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/MapViewModel.kt @@ -94,10 +94,6 @@ class MapViewModel @Inject constructor( FeatureCollection(placeList.map { createFeatureFromSavedPlace(it) }) } - init { - locationRepository.startContinuousLocationUpdates(context) - } - /** * Creates a Feature from a Place with proper JSON escaping. */ diff --git a/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/NearbyViewModel.kt b/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/NearbyViewModel.kt index 9d7d5ba..9dd7791 100644 --- a/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/NearbyViewModel.kt +++ b/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/NearbyViewModel.kt @@ -61,7 +61,6 @@ class NearbyViewModel @Inject constructor( init { // Start observing location updates - locationRepository.startContinuousLocationUpdates(context) observeLocationUpdates() } diff --git a/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/TransitScreenViewModel.kt b/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/TransitScreenViewModel.kt index a876cd2..66d697b 100644 --- a/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/TransitScreenViewModel.kt +++ b/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/home/TransitScreenViewModel.kt @@ -88,7 +88,6 @@ class TransitScreenViewModel @Inject constructor( init { // Start observing location updates - locationRepository.startContinuousLocationUpdates(context) observeLocationUpdates() } -- GitLab