From ae012d1e865b0f00334f09931eda62c95d41d528 Mon Sep 17 00:00:00 2001 From: Kristoffer Kleine Date: Mon, 12 Jun 2023 23:17:06 +0200 Subject: [PATCH] fix: Set initial map padding (#326) --- .../google/maps/android/compose/MapUpdater.kt | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/maps-compose/src/main/java/com/google/maps/android/compose/MapUpdater.kt b/maps-compose/src/main/java/com/google/maps/android/compose/MapUpdater.kt index 56ccc7f2..479019ca 100644 --- a/maps-compose/src/main/java/com/google/maps/android/compose/MapUpdater.kt +++ b/maps-compose/src/main/java/com/google/maps/android/compose/MapUpdater.kt @@ -34,9 +34,11 @@ internal class MapPropertiesNode( var clickListeners: MapClickListeners, var density: Density, var layoutDirection: LayoutDirection, + contentPadding: PaddingValues ) : MapNode { init { + applyContentPadding(map, contentPadding) cameraPositionState.setMap(map) if (contentDescription != null) { map.setContentDescription(contentDescription) @@ -130,6 +132,7 @@ internal inline fun MapUpdater( clickListeners = clickListeners, density = density, layoutDirection = layoutDirection, + contentPadding = contentPadding ) } ) { @@ -150,15 +153,7 @@ internal inline fun MapUpdater( set(mapProperties.maxZoomPreference) { map.setMaxZoomPreference(it) } set(mapProperties.minZoomPreference) { map.setMinZoomPreference(it) } set(contentPadding) { - val node = this - with(this.density) { - map.setPadding( - it.calculateLeftPadding(node.layoutDirection).roundToPx(), - it.calculateTopPadding().roundToPx(), - it.calculateRightPadding(node.layoutDirection).roundToPx(), - it.calculateBottomPadding().roundToPx() - ) - } + applyContentPadding(map, it) } set(mapUiSettings.compassEnabled) { map.uiSettings.isCompassEnabled = it } @@ -176,3 +171,15 @@ internal inline fun MapUpdater( update(clickListeners) { this.clickListeners = it } } } + +private fun MapPropertiesNode.applyContentPadding(map: GoogleMap, contentPadding: PaddingValues) { + val node = this + with (this.density) { + map.setPadding( + contentPadding.calculateLeftPadding(node.layoutDirection).roundToPx(), + contentPadding.calculateTopPadding().roundToPx(), + contentPadding.calculateRightPadding(node.layoutDirection).roundToPx(), + contentPadding.calculateBottomPadding().roundToPx() + ) + } +} \ No newline at end of file