Move location permission watcher to the outside of the screens to avoid recreating them

This commit is contained in:
Vitor Pamplona
2026-03-10 20:01:55 -04:00
parent 8cd9449ba6
commit 9f903709e7
2 changed files with 14 additions and 6 deletions
@@ -113,12 +113,6 @@ fun FeedFilterSpinner(
}
}
val locationPermissionState = rememberPermissionState(Manifest.permission.ACCESS_COARSE_LOCATION)
LaunchedEffect(locationPermissionState.status.isGranted) {
Amethyst.instance.locationManager.setLocationPermission(locationPermissionState.status.isGranted)
}
val accessibilityDescription =
if (selected != null) {
stringRes(R.string.feed_filter_selected, currentText)
@@ -137,6 +131,7 @@ fun FeedFilterSpinner(
Text(currentText)
if (selected?.code is TopFilter.AroundMe) {
val locationPermissionState = rememberPermissionState(Manifest.permission.ACCESS_COARSE_LOCATION)
if (!locationPermissionState.status.isGranted) {
LaunchedEffect(locationPermissionState) { locationPermissionState.launchPermissionRequest() }
@@ -29,6 +29,7 @@ import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope
import androidx.lifecycle.compose.LifecycleResumeEffect
@@ -98,12 +99,24 @@ fun LoggedInPage(
// Register token with the Push Notification Provider.
NotificationRegistration(accountViewModel)
WatchLocationPermissions()
AppNavigation(
accountViewModel = accountViewModel,
accountSessionManager = accountSessionManager,
)
}
@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun WatchLocationPermissions() {
val locationPermissionState = rememberPermissionState(Manifest.permission.ACCESS_COARSE_LOCATION)
LaunchedEffect(locationPermissionState.status.isGranted) {
Amethyst.instance.locationManager.setLocationPermission(locationPermissionState.status.isGranted)
}
}
@Composable
fun ObserveAntiSpamFilterSettings(accountViewModel: AccountViewModel) {
val isSpamActive by accountViewModel.account.settings.syncedSettings.security.filterSpamFromStrangers