Skip to content

Commit f93a28b

Browse files
troZeePiotr Trocki
andauthored
fix(android): implement getContext for the older versions of react native (#397)
Co-authored-by: Piotr Trocki <[email protected]>
1 parent bda9ace commit f93a28b

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.reactnativepagerview
2+
3+
import android.content.Context
4+
import android.content.ContextWrapper
5+
import android.view.View
6+
import com.facebook.react.bridge.ReactContext
7+
8+
9+
class Helper {
10+
companion object {
11+
// https://github.com/facebook/react-native/blob/v0.64.2/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java#L138
12+
fun getReactContext(view: View): ReactContext? {
13+
var context: Context = view.getContext()
14+
if (context !is ReactContext && context is ContextWrapper) {
15+
context = context.baseContext
16+
}
17+
return if (context is ReactContext) context else null;
18+
}
19+
}
20+
21+
}

android/src/main/java/com/reactnativepagerview/PagerViewViewManager.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import com.facebook.react.uimanager.PixelUtil
1313
import com.facebook.react.uimanager.ThemedReactContext
1414
import com.facebook.react.uimanager.UIManagerModule
1515
import com.facebook.react.uimanager.ViewGroupManager
16-
import com.facebook.react.uimanager.UIManagerHelper
1716
import com.facebook.react.uimanager.annotations.ReactProp
1817
import com.facebook.react.uimanager.events.EventDispatcher
18+
import com.reactnativepagerview.Helper.Companion.getReactContext
1919
import com.reactnativepagerview.event.PageScrollEvent
2020
import com.reactnativepagerview.event.PageScrollStateChangedEvent
2121
import com.reactnativepagerview.event.PageSelectedEvent
@@ -82,7 +82,7 @@ class PagerViewViewManager : ViewGroupManager<ViewPager2>() {
8282

8383
override fun onDropViewInstance(view: ViewPager2) {
8484
super.onDropViewInstance(view)
85-
UIManagerHelper.getReactContext(view).removeLifecycleEventListener(lifecycleEventListener);
85+
getReactContext(view)?.removeLifecycleEventListener(lifecycleEventListener)
8686
}
8787

8888
private fun setCurrentItem(view: ViewPager2, selectedTab: Int, scrollSmooth: Boolean) {

0 commit comments

Comments
 (0)