移除定位权限

This commit is contained in:
2024-09-22 18:45:29 +08:00
parent 8019543de5
commit 731caf11fb

View File

@@ -1,8 +1,5 @@
package com.aiosman.riderpro.ui.index.tabs.street package com.aiosman.riderpro.ui.index.tabs.street
import android.content.pm.PackageManager
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.Image import androidx.compose.foundation.Image
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
@@ -33,20 +30,16 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.core.content.ContextCompat
import androidx.navigation.NavOptions import androidx.navigation.NavOptions
import com.aiosman.riderpro.LocalNavController import com.aiosman.riderpro.LocalNavController
import com.aiosman.riderpro.R import com.aiosman.riderpro.R
import com.aiosman.riderpro.test.countries import com.aiosman.riderpro.test.countries
import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.LocationServices
import com.google.android.gms.maps.model.CameraPosition import com.google.android.gms.maps.model.CameraPosition
import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.LatLng
import com.google.maps.android.compose.GoogleMap import com.google.maps.android.compose.GoogleMap
@@ -59,9 +52,6 @@ import com.google.maps.android.compose.rememberCameraPositionState
@Composable @Composable
fun StreetPage() { fun StreetPage() {
val navController = LocalNavController.current val navController = LocalNavController.current
val context = LocalContext.current
val fusedLocationClient: FusedLocationProviderClient =
LocationServices.getFusedLocationProviderClient(context)
var currentLocation by remember { mutableStateOf<LatLng?>(null) } var currentLocation by remember { mutableStateOf<LatLng?>(null) }
val navigationBarHeight = with(LocalDensity.current) { val navigationBarHeight = with(LocalDensity.current) {
WindowInsets.navigationBars.getBottom(this).toDp() WindowInsets.navigationBars.getBottom(this).toDp()
@@ -71,41 +61,12 @@ fun StreetPage() {
} }
var hasLocationPermission by remember { mutableStateOf(false) } var hasLocationPermission by remember { mutableStateOf(false) }
var searchText by remember { mutableStateOf("") } var searchText by remember { mutableStateOf("") }
val permissionLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.RequestPermission(),
onResult = { isGranted ->
hasLocationPermission = isGranted
if (isGranted) {
fusedLocationClient.lastLocation.addOnSuccessListener { location ->
if (location != null) {
currentLocation = LatLng(location.latitude, location.longitude)
}
}
}
}
)
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
when (PackageManager.PERMISSION_GRANTED) {
ContextCompat.checkSelfPermission(
context,
android.Manifest.permission.ACCESS_FINE_LOCATION
) -> {
fusedLocationClient.lastLocation.addOnSuccessListener { location ->
if (location != null) {
// currentLocation = LatLng(location.latitude, location.longitude)
}
}
hasLocationPermission = true
}
else -> {
permissionLauncher.launch(android.Manifest.permission.ACCESS_FINE_LOCATION)
}
}
} }
LaunchedEffect(currentLocation) { LaunchedEffect(currentLocation) {
cameraPositionState.position = cameraPositionState.position =
CameraPosition.fromLatLngZoom( CameraPosition.fromLatLngZoom(
currentLocation ?: LatLng( currentLocation ?: LatLng(