From 536b096bc3254a85cee9ff765034f5a0953fa3cc Mon Sep 17 00:00:00 2001 From: Wojciech Lewicki Date: Thu, 27 Jun 2024 14:03:20 +0200 Subject: [PATCH] feat: migrate to StateWrapper --- .../rnscreens/FabricEnabledViewGroup.kt | 28 +++++++++---------- .../swmansion/rnscreens/ScreenViewManager.kt | 2 +- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt b/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt index cefa92896..4dff86a6a 100644 --- a/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +++ b/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt @@ -5,20 +5,21 @@ import androidx.annotation.UiThread import com.facebook.react.bridge.ReactContext import com.facebook.react.bridge.WritableMap import com.facebook.react.bridge.WritableNativeMap -import com.facebook.react.uimanager.FabricViewStateManager import com.facebook.react.uimanager.PixelUtil +import com.facebook.react.uimanager.StateWrapper import kotlin.math.abs -abstract class FabricEnabledViewGroup constructor( +abstract class FabricEnabledViewGroup( context: ReactContext?, -) : ViewGroup(context), - FabricViewStateManager.HasFabricViewStateManager { - private val mFabricViewStateManager: FabricViewStateManager = FabricViewStateManager() +) : ViewGroup(context) { + private var mStateWrapper: StateWrapper? = null private var lastSetWidth = 0f private var lastSetHeight = 0f - override fun getFabricViewStateManager(): FabricViewStateManager = mFabricViewStateManager + fun setStateWrapper(wrapper: StateWrapper?) { + mStateWrapper = wrapper + } protected fun updateScreenSizeFabric( width: Int, @@ -48,14 +49,11 @@ abstract class FabricEnabledViewGroup constructor( lastSetWidth = realWidth lastSetHeight = realHeight - - mFabricViewStateManager.setState { - val map: WritableMap = WritableNativeMap() - map.putDouble("frameWidth", realWidth.toDouble()) - map.putDouble("frameHeight", realHeight.toDouble()) - map.putDouble("contentOffsetX", 0.0) - map.putDouble("contentOffsetY", headerHeight) - map - } + val map: WritableMap = WritableNativeMap() + map.putDouble("frameWidth", realWidth.toDouble()) + map.putDouble("frameHeight", realHeight.toDouble()) + map.putDouble("contentOffsetX", 0.0) + map.putDouble("contentOffsetY", headerHeight) + mStateWrapper?.updateState(map) } } diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt b/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt index 62cf547c1..c8f38a5f1 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +++ b/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt @@ -49,7 +49,7 @@ open class ScreenViewManager : ): Any? { if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { // fabricViewStateManager should never be null in Fabric. The null check is only for Paper's empty impl. - view.fabricViewStateManager?.setStateWrapper(stateWrapper) + view.setStateWrapper(stateWrapper) } return super.updateState(view, props, stateWrapper) }