Merge pull request #6609 from vector-im/feature/ons/reset_zoom_level_on_user_focus
Live Location Sharing - Reset zoom level while focusing a user (PSG-624)
This commit is contained in:
commit
6a9b496651
|
@ -0,0 +1 @@
|
|||
Live Location Sharing - Reset zoom level while focusing a user
|
|
@ -28,11 +28,13 @@ fun MapboxMap?.zoomToLocation(locationData: LocationData, preserveCurrentZoomLev
|
|||
} else {
|
||||
INITIAL_MAP_ZOOM_IN_PREVIEW
|
||||
}
|
||||
this?.cameraPosition = CameraPosition.Builder()
|
||||
this?.easeCamera {
|
||||
CameraPosition.Builder()
|
||||
.target(LatLng(locationData.latitude, locationData.longitude))
|
||||
.zoom(zoomLevel)
|
||||
.build()
|
||||
}
|
||||
}
|
||||
|
||||
fun MapboxMap?.zoomToBounds(latLngBounds: LatLngBounds) {
|
||||
this?.getCameraForLatLngBounds(latLngBounds)?.let { camPosition ->
|
||||
|
|
|
@ -45,6 +45,7 @@ import im.vector.app.core.platform.VectorBaseFragment
|
|||
import im.vector.app.core.utils.DimensionConverter
|
||||
import im.vector.app.core.utils.openLocation
|
||||
import im.vector.app.databinding.FragmentLocationLiveMapViewBinding
|
||||
import im.vector.app.features.location.LocationData
|
||||
import im.vector.app.features.location.UrlMapProvider
|
||||
import im.vector.app.features.location.zoomToBounds
|
||||
import im.vector.app.features.location.zoomToLocation
|
||||
|
@ -137,11 +138,9 @@ class LocationLiveMapViewFragment @Inject constructor() : VectorBaseFragment<Fra
|
|||
|
||||
private fun onSymbolClicked(symbol: Symbol?) {
|
||||
symbol?.let {
|
||||
val screenLocation = mapboxMap?.get()?.projection?.toScreenLocation(it.latLng)
|
||||
views.liveLocationPopupAnchor.apply {
|
||||
x = screenLocation?.x ?: 0f
|
||||
y = (screenLocation?.y ?: 0f) - views.liveLocationPopupAnchor.height
|
||||
}
|
||||
mapboxMap
|
||||
?.get()
|
||||
?.zoomToLocation(LocationData(it.latLng.latitude, it.latLng.longitude, null), preserveCurrentZoomLevel = false)
|
||||
|
||||
LocationLiveMapMarkerOptionsDialog(requireContext())
|
||||
.apply {
|
||||
|
@ -273,7 +272,7 @@ class LocationLiveMapViewFragment @Inject constructor() : VectorBaseFragment<Fra
|
|||
.find { it.matrixItem.id == userId }
|
||||
?.locationData
|
||||
?.let { locationData ->
|
||||
mapboxMap?.get()?.zoomToLocation(locationData, preserveCurrentZoomLevel = true)
|
||||
mapboxMap?.get()?.zoomToLocation(locationData, preserveCurrentZoomLevel = false)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,8 +8,9 @@
|
|||
|
||||
<View
|
||||
android:id="@+id/liveLocationPopupAnchor"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp" />
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_gravity="center"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/liveLocationMapFragmentContainer"
|
||||
|
|
Loading…
Reference in New Issue