Skip to content

Commit

Permalink
Use SideEffect to check if need to show location button
Browse files Browse the repository at this point in the history
  • Loading branch information
egorikftp committed Oct 21, 2024
1 parent 86bc9c7 commit d351da4
Showing 1 changed file with 3 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,29 +1,20 @@
package com.egoriku.grodnoroads.location.requester

import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.repeatOnLifecycle
import com.egoriku.grodnoroads.foundation.core.rememberMutableState
import com.egoriku.grodnoroads.location.requester.internal.hasLocationPermissions

@Composable
actual fun rememberLocationPermissionsState(): PermissionState {
val context = LocalContext.current
val lifecycle = LocalLifecycleOwner.current.lifecycle

var permissionState by rememberMutableState { PermissionState(allPermissionsGranted = false) }

LaunchedEffect(Unit) {
lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
permissionState = permissionState.copy(
allPermissionsGranted = context.hasLocationPermissions()
)
}
SideEffect {
permissionState = permissionState.copy(allPermissionsGranted = context.hasLocationPermissions())
}

return permissionState
Expand Down

0 comments on commit d351da4

Please sign in to comment.