Skip to content

Instantly share code, notes, and snippets.

@ngengesenior
Last active June 13, 2024 03:26
Show Gist options
  • Select an option

  • Save ngengesenior/908ab8f883958e366be89df7c04ddbb5 to your computer and use it in GitHub Desktop.

Select an option

Save ngengesenior/908ab8f883958e366be89df7c04ddbb5 to your computer and use it in GitHub Desktop.
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@Composable
fun CurrentWeatherForLocation(
locationManager: IosLocationManager = IosLocationManager()
) {
var location: Pair<Double, Double>? by remember { mutableStateOf(null) }
var permissionStatus: LocationPermissionStatus by remember {
mutableStateOf(
LocationPermissionStatus.NOT_DETERMINED
)
}
Column(
Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally
) {
LaunchedEffect(Unit) {
permissionStatus = locationManager.requestLocationPermission()
if (permissionStatus == LocationPermissionStatus.ACCEPTED) {
val locationResult = locationManager.requestCurrentLocation()
if (locationResult.isSuccess) {
locationResult.getOrNull()?.let {
location = Pair(it.getLatitude(), it.getLongitude())
}
} else {
println("Error: ${locationResult.exceptionOrNull()?.message}")
}
}
}
when (permissionStatus) {
LocationPermissionStatus.NOT_DETERMINED -> {
Text("Requesting location permission")
}
LocationPermissionStatus.RESTRICTED_OR_DENIED -> {
Text("Location permissions were denied or are restricted")
}
LocationPermissionStatus.ACCEPTED -> {
if (location != null) {
Text("Latitude ${location?.first},Longitude:${location?.second}")
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment