From 9075f4279ae3e6a1c5735f6bf2a96b9b968f94c9 Mon Sep 17 00:00:00 2001 From: Kacper Kafara Date: Thu, 3 Oct 2024 10:19:17 +0200 Subject: [PATCH] fix: align units of sheet corner radius in different callsites (#2378) ## Description Before this PR, when updating corner size after initial render different unit (pixel) has been used opposed to `dp` used during initial render. This PR align this behaviour so that `dp` is always used. ## Changes * Calculate appropriate value in `Screen.onSheetDetentChange` function ## Test code and steps to reproduce `Test1649` ## Checklist - [x] Included code example that can be used to test this change - [ ] Ensured that CI passes --- android/src/main/java/com/swmansion/rnscreens/Screen.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/swmansion/rnscreens/Screen.kt b/android/src/main/java/com/swmansion/rnscreens/Screen.kt index b556d115ac..68956f02bc 100644 --- a/android/src/main/java/com/swmansion/rnscreens/Screen.kt +++ b/android/src/main/java/com/swmansion/rnscreens/Screen.kt @@ -16,6 +16,7 @@ import androidx.fragment.app.Fragment import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.facebook.react.bridge.GuardedRunnable import com.facebook.react.bridge.ReactContext +import com.facebook.react.uimanager.PixelUtil import com.facebook.react.uimanager.UIManagerHelper import com.facebook.react.uimanager.UIManagerModule import com.facebook.react.uimanager.events.EventDispatcher @@ -441,12 +442,13 @@ class Screen( return } (background as MaterialShapeDrawable?)?.let { + val resolvedCornerRadius = PixelUtil.toDIPFromPixel(sheetCornerRadius) it.shapeAppearanceModel = ShapeAppearanceModel .Builder() .apply { - setTopLeftCorner(CornerFamily.ROUNDED, sheetCornerRadius) - setTopRightCorner(CornerFamily.ROUNDED, sheetCornerRadius) + setTopLeftCorner(CornerFamily.ROUNDED, resolvedCornerRadius) + setTopRightCorner(CornerFamily.ROUNDED, resolvedCornerRadius) }.build() } }