diff --git a/android/src/main/java/com/swmansion/rnscreens/InsetsObserverProxy.kt b/android/src/main/java/com/swmansion/rnscreens/InsetsObserverProxy.kt index 1ff798a0e..dd5468284 100644 --- a/android/src/main/java/com/swmansion/rnscreens/InsetsObserverProxy.kt +++ b/android/src/main/java/com/swmansion/rnscreens/InsetsObserverProxy.kt @@ -57,10 +57,8 @@ object InsetsObserverProxy : OnApplyWindowInsetsListener { } } - fun unregister() { - eventSourceView.get()?.takeIf { hasBeenRegistered }?.let { - ViewCompat.setOnApplyWindowInsetsListener(it, null) - } + fun unregisterOnView(view: View) { + ViewCompat.setOnApplyWindowInsetsListener(view, null) } private fun getObservedView(): View? = eventSourceView.get() diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt b/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt index 37aefe87b..c56ede148 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +++ b/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt @@ -163,6 +163,7 @@ object ScreenWindowTraits { InsetsObserverProxy.registerOnView(decorView) InsetsObserverProxy.addOnApplyWindowInsetsListener(windowInsetsListener) } else { + InsetsObserverProxy.unregisterOnView(decorView) InsetsObserverProxy.removeOnApplyWindowInsetsListener(windowInsetsListener) } ViewCompat.requestApplyInsets(decorView)