Make sure zoom is at least DEFAULT_ZOOM when following user position

This commit is contained in:
ganfra 2026-03-12 10:28:36 +01:00
parent 92cb2ccb95
commit 50cf8a6986

View file

@ -11,6 +11,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.features.location.impl.common.MapDefaults
import org.maplibre.compose.camera.CameraState
import org.maplibre.compose.location.DesiredAccuracy
import org.maplibre.compose.location.LocationPuck
@ -33,7 +34,12 @@ fun UserLocationPuck(
locationState = locationState,
enabled = trackUserLocation,
) {
cameraState.updateFromLocation()
val finalPosition = cameraState.position.copy(
target = currentLocation.position,
bearing = currentLocation.bearing ?: cameraState.position.bearing,
zoom = cameraState.position.zoom.coerceAtLeast(MapDefaults.DEFAULT_ZOOM)
)
cameraState.animateTo(finalPosition)
}
val location = locationState.location
if (location != null) {