diff --git a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextPackage.kt b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextPackage.kt index 0265d787..60637308 100644 --- a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextPackage.kt +++ b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextPackage.kt @@ -30,6 +30,7 @@ class SafeAreaContextPackage : TurboReactPackage() { moduleClass.name, true, reactModule.needsEagerInit, + /** TODO remove the parameter once support for RN < 0.73 is dropped */ reactModule.hasConstants, reactModule.isCxxModule, TurboModule::class.java.isAssignableFrom(moduleClass)) diff --git a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt index ca5646c2..b29e787a 100644 --- a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt +++ b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt @@ -5,26 +5,28 @@ import android.util.Log import android.view.View import android.view.ViewTreeObserver import com.facebook.react.bridge.Arguments -import com.facebook.react.uimanager.FabricViewStateManager -import com.facebook.react.uimanager.FabricViewStateManager.HasFabricViewStateManager +import com.facebook.react.uimanager.StateWrapper import com.facebook.react.uimanager.UIManagerModule import com.facebook.react.views.view.ReactViewGroup -import java.util.* import java.util.concurrent.locks.ReentrantLock import kotlin.concurrent.withLock private const val MAX_WAIT_TIME_NANO = 500000000L // 500ms class SafeAreaView(context: Context?) : - ReactViewGroup(context), ViewTreeObserver.OnPreDrawListener, HasFabricViewStateManager { + ReactViewGroup(context), ViewTreeObserver.OnPreDrawListener { private var mMode = SafeAreaViewMode.PADDING private var mInsets: EdgeInsets? = null private var mEdges: SafeAreaViewEdges? = null private var mProviderView: View? = null - private val mFabricViewStateManager = FabricViewStateManager() + private var mStateWrapper: StateWrapper? = null - override fun getFabricViewStateManager(): FabricViewStateManager { - return mFabricViewStateManager + fun getStateWrapper(): StateWrapper? { + return mStateWrapper + } + + fun setStateWrapper(stateWrapper: StateWrapper?) { + mStateWrapper = stateWrapper } private fun updateInsets() { @@ -37,12 +39,11 @@ class SafeAreaView(context: Context?) : SafeAreaViewEdgeModes.ADDITIVE, SafeAreaViewEdgeModes.ADDITIVE, SafeAreaViewEdgeModes.ADDITIVE) - if (mFabricViewStateManager.hasStateWrapper()) { - mFabricViewStateManager.setState { - val map = Arguments.createMap() - map.putMap("insets", edgeInsetsToJsMap(insets)) - map - } + val stateWrapper = getStateWrapper() + if (stateWrapper != null) { + val map = Arguments.createMap() + map.putMap("insets", edgeInsetsToJsMap(insets)) + stateWrapper.updateState(map) } else { val localData = SafeAreaViewLocalData(insets = insets, mode = mMode, edges = edges) val reactContext = getReactContext(this) diff --git a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewEdges.kt b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewEdges.kt index 24492c5d..d7b64bff 100644 --- a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewEdges.kt +++ b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewEdges.kt @@ -1,7 +1,5 @@ package com.th3rdwave.safeareacontext -import java.util.* - enum class SafeAreaViewEdgeModes { OFF, ADDITIVE, diff --git a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewLocalData.kt b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewLocalData.kt index afbbcdfd..93d543e8 100644 --- a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewLocalData.kt +++ b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewLocalData.kt @@ -1,7 +1,5 @@ package com.th3rdwave.safeareacontext -import java.util.* - data class SafeAreaViewLocalData( val insets: EdgeInsets, val mode: SafeAreaViewMode, diff --git a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewManager.kt b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewManager.kt index 114e8926..e45f2101 100644 --- a/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewManager.kt +++ b/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewManager.kt @@ -10,7 +10,6 @@ import com.facebook.react.uimanager.annotations.ReactProp import com.facebook.react.viewmanagers.RNCSafeAreaViewManagerInterface import com.facebook.react.views.view.ReactViewGroup import com.facebook.react.views.view.ReactViewManager -import java.util.* @ReactModule(name = SafeAreaViewManager.REACT_CLASS) class SafeAreaViewManager : ReactViewManager(), RNCSafeAreaViewManagerInterface { @@ -64,7 +63,7 @@ class SafeAreaViewManager : ReactViewManager(), RNCSafeAreaViewManagerInterface< props: ReactStylesDiffMap?, stateWrapper: StateWrapper? ): Any? { - (view as SafeAreaView).fabricViewStateManager.setStateWrapper(stateWrapper) + (view as SafeAreaView).setStateWrapper(stateWrapper) return null }