Skip to content

Commit d0bf8a4

Browse files
committed
fixed android?
1 parent 6599d06 commit d0bf8a4

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerDetectorView.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ class RNGestureHandlerDetectorView(context: Context) : ReactViewGroup(context) {
7070
for (tag in newHandlers) {
7171
changes[tag] = if (changes.containsKey(tag)) GestureHandlerMutation.Keep else GestureHandlerMutation.Attach
7272
}
73-
7473
for (entry in changes) {
7574
val tag = entry.key
7675

@@ -128,6 +127,15 @@ class RNGestureHandlerDetectorView(context: Context) : ReactViewGroup(context) {
128127
eventDispatcher?.dispatchEvent(event)
129128
}
130129

130+
fun onViewDrop() {
131+
val registry = RNGestureHandlerModule.registries[moduleId]
132+
?: throw Exception("Tried to access a non-existent registry")
133+
for (tag in attachedHandlers) {
134+
registry.detachHandler(tag)
135+
attachedHandlers.remove(tag)
136+
}
137+
}
138+
131139
companion object {
132140
private enum class GestureHandlerMutation {
133141
Attach,

packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerDetectorViewManager.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,9 @@ class RNGestureHandlerDetectorViewManager :
3636
override fun setModuleId(view: RNGestureHandlerDetectorView, value: Int) {
3737
view.setModuleId(value)
3838
}
39+
40+
override fun onDropViewInstance(view: RNGestureHandlerDetectorView) {
41+
view.onViewDrop()
42+
super.onDropViewInstance(view)
43+
}
3944
}

0 commit comments

Comments
 (0)