From 4ce3c453932187e2d664a68992098cd1dd238a1d Mon Sep 17 00:00:00 2001 From: Kacper Kafara Date: Fri, 4 Oct 2024 14:49:37 +0200 Subject: [PATCH] fix(Android): do not crash in case background can not be casted to MaterialShapeDrawable (#2388) ## Description It turns out, that this check: https://github.com/software-mansion/react-native-screens/pull/2375/commits/b2dab7859c32a5848b40369c79c95b1e5f2bd77e was necessary, and I forgot about it while applying the code review. Current code will crash if `background != null && !(background is MaterialShapeDrawable)`, so e.g. when `background is ColorDrawable`. We don't wanna fail in this case. ## Changes Allowed the cast to fail instead of throwing exception, when casting background to `MaterialShapeDrawable`. One thing that concerns me ## Test code and steps to reproduce `Test1649` ## Checklist - [ ] Included code example that can be used to test this change - [ ] Ensured that CI passes --- android/src/main/java/com/swmansion/rnscreens/Screen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/swmansion/rnscreens/Screen.kt b/android/src/main/java/com/swmansion/rnscreens/Screen.kt index 68956f02bc..7bb5ac5269 100644 --- a/android/src/main/java/com/swmansion/rnscreens/Screen.kt +++ b/android/src/main/java/com/swmansion/rnscreens/Screen.kt @@ -441,7 +441,7 @@ class Screen( if (stackPresentation !== StackPresentation.FORM_SHEET || background == null) { return } - (background as MaterialShapeDrawable?)?.let { + (background as? MaterialShapeDrawable?)?.let { val resolvedCornerRadius = PixelUtil.toDIPFromPixel(sheetCornerRadius) it.shapeAppearanceModel = ShapeAppearanceModel