Skip to content

Commit d8e1a90

Browse files
author
sds100
committed
Merge branch 'feature/34-clicking-my-location-should-animate-t' into develop
2 parents eee7598 + 46e5422 commit d8e1a90

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

app/src/main/java/com/mapcode/map/MapScreen.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -203,15 +203,15 @@ fun MapControls(
203203
scope.launch {
204204
viewModel.cameraPositionState.animate(
205205
CameraUpdateFactory.zoomIn(),
206-
ANIMATE_CAMERA_UPDATE_DURATION_MS
206+
MapViewModel.ANIMATE_CAMERA_UPDATE_DURATION_MS
207207
)
208208
}
209209
},
210210
onZoomOutClick = {
211211
scope.launch {
212212
viewModel.cameraPositionState.animate(
213213
CameraUpdateFactory.zoomOut(),
214-
ANIMATE_CAMERA_UPDATE_DURATION_MS
214+
MapViewModel. ANIMATE_CAMERA_UPDATE_DURATION_MS
215215
)
216216
}
217217
},
@@ -355,8 +355,6 @@ fun ZoomControls(
355355
}
356356
}
357357

358-
private const val ANIMATE_CAMERA_UPDATE_DURATION_MS = 200
359-
360358
@Composable
361359
fun MapWithCrossHairs(
362360
modifier: Modifier,
@@ -420,7 +418,7 @@ fun Map(
420418
scope.launch {
421419
cameraPositionState.animate(
422420
CameraUpdateFactory.newLatLng(position),
423-
ANIMATE_CAMERA_UPDATE_DURATION_MS
421+
MapViewModel. ANIMATE_CAMERA_UPDATE_DURATION_MS
424422
)
425423
}
426424
},
@@ -429,15 +427,15 @@ fun Map(
429427
scope.launch {
430428
cameraPositionState.animate(
431429
CameraUpdateFactory.newLatLng(LatLng(location.latitude, location.longitude)),
432-
ANIMATE_CAMERA_UPDATE_DURATION_MS
430+
MapViewModel. ANIMATE_CAMERA_UPDATE_DURATION_MS
433431
)
434432
}
435433
},
436434
onPOIClick = { poi ->
437435
scope.launch {
438436
cameraPositionState.animate(
439437
CameraUpdateFactory.newLatLng(poi.latLng),
440-
ANIMATE_CAMERA_UPDATE_DURATION_MS
438+
MapViewModel. ANIMATE_CAMERA_UPDATE_DURATION_MS
441439
)
442440
}
443441
},

app/src/main/java/com/mapcode/map/MapViewModel.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class MapViewModel @Inject constructor(
3636

3737
companion object {
3838
private const val UNKNOWN_ADDRESS_ERROR_TIMEOUT: Long = 3000
39+
const val ANIMATE_CAMERA_UPDATE_DURATION_MS = 200
3940
}
4041

4142
private val mapcodes: MutableStateFlow<List<Mapcode>> = MutableStateFlow(emptyList())
@@ -107,11 +108,16 @@ class MapViewModel @Inject constructor(
107108
}
108109
}
109110

110-
private fun moveCamera(lat: Double, long: Double, zoom: Float) {
111+
private fun moveCamera(lat: Double, long: Double, zoom: Float, animate: Boolean = false) {
111112
viewModelScope.launch(dispatchers.main) {
112113
if (isGoogleMapsSdkLoaded) {
113114
val cameraUpdate = CameraUpdateFactory.newLatLngZoom(LatLng(lat, long), zoom)
114-
cameraPositionState.move(cameraUpdate)
115+
116+
if (animate) {
117+
cameraPositionState.animate(cameraUpdate, ANIMATE_CAMERA_UPDATE_DURATION_MS)
118+
} else {
119+
cameraPositionState.move(cameraUpdate)
120+
}
115121
}
116122

117123
onCameraMoved(lat, long, zoom)
@@ -126,7 +132,7 @@ class MapViewModel @Inject constructor(
126132
showCantFindLocationSnackBar = true
127133
} else {
128134
showCantFindLocationSnackBar = false
129-
moveCamera(myLocation.latitude, myLocation.longitude, 16f)
135+
moveCamera(myLocation.latitude, myLocation.longitude, 16f, animate = true)
130136
}
131137
}
132138
}

0 commit comments

Comments
 (0)