Move location permission watcher to the outside of the screens to avoid recreating them
This commit is contained in:
+1
-6
@@ -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 =
|
val accessibilityDescription =
|
||||||
if (selected != null) {
|
if (selected != null) {
|
||||||
stringRes(R.string.feed_filter_selected, currentText)
|
stringRes(R.string.feed_filter_selected, currentText)
|
||||||
@@ -137,6 +131,7 @@ fun FeedFilterSpinner(
|
|||||||
Text(currentText)
|
Text(currentText)
|
||||||
|
|
||||||
if (selected?.code is TopFilter.AroundMe) {
|
if (selected?.code is TopFilter.AroundMe) {
|
||||||
|
val locationPermissionState = rememberPermissionState(Manifest.permission.ACCESS_COARSE_LOCATION)
|
||||||
if (!locationPermissionState.status.isGranted) {
|
if (!locationPermissionState.status.isGranted) {
|
||||||
LaunchedEffect(locationPermissionState) { locationPermissionState.launchPermissionRequest() }
|
LaunchedEffect(locationPermissionState) { locationPermissionState.launchPermissionRequest() }
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import androidx.activity.compose.rememberLauncherForActivityResult
|
|||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.DisposableEffect
|
import androidx.compose.runtime.DisposableEffect
|
||||||
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import androidx.lifecycle.compose.LifecycleResumeEffect
|
import androidx.lifecycle.compose.LifecycleResumeEffect
|
||||||
@@ -98,12 +99,24 @@ fun LoggedInPage(
|
|||||||
// Register token with the Push Notification Provider.
|
// Register token with the Push Notification Provider.
|
||||||
NotificationRegistration(accountViewModel)
|
NotificationRegistration(accountViewModel)
|
||||||
|
|
||||||
|
WatchLocationPermissions()
|
||||||
|
|
||||||
AppNavigation(
|
AppNavigation(
|
||||||
accountViewModel = accountViewModel,
|
accountViewModel = accountViewModel,
|
||||||
accountSessionManager = accountSessionManager,
|
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
|
@Composable
|
||||||
fun ObserveAntiSpamFilterSettings(accountViewModel: AccountViewModel) {
|
fun ObserveAntiSpamFilterSettings(accountViewModel: AccountViewModel) {
|
||||||
val isSpamActive by accountViewModel.account.settings.syncedSettings.security.filterSpamFromStrangers
|
val isSpamActive by accountViewModel.account.settings.syncedSettings.security.filterSpamFromStrangers
|
||||||
|
|||||||
Reference in New Issue
Block a user