Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -385,13 +385,13 @@ class ComposePagerView(context: Context) : FrameLayout(context) {
}
lastEmittedPageSelected = position
UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)?.dispatchEvent(
PageSelectedEvent(id, position)
PageSelectedEvent(UIManagerHelper.getSurfaceId(this), id, position)
)
}

private fun dispatchPageScroll(position: Int, offset: Float) {
UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)?.dispatchEvent(
PageScrollEvent(id, position, offset)
PageScrollEvent(UIManagerHelper.getSurfaceId(this), id, position, offset)
)
}

Expand All @@ -401,7 +401,7 @@ class ComposePagerView(context: Context) : FrameLayout(context) {
}
lastEmittedScrollState = state
UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)?.dispatchEvent(
PageScrollStateChangedEvent(id, state)
PageScrollStateChangedEvent(UIManagerHelper.getSurfaceId(this), id, state)
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.reactnativepagerview.event
import com.facebook.react.bridge.Arguments
import com.facebook.react.bridge.WritableMap
import com.facebook.react.uimanager.events.Event
import com.facebook.react.uimanager.events.RCTEventEmitter
import java.lang.Float.isInfinite
import java.lang.Float.isNaN

Expand All @@ -18,17 +17,14 @@ import java.lang.Float.isNaN
* (1 - x) fraction of the page at "position" index is visible, and x fraction of the next page
* is visible.
*/
class PageScrollEvent(viewTag: Int, private val mPosition: Int, offset: Float) : Event<PageScrollEvent>(viewTag) {
class PageScrollEvent(surfaceId: Int, viewTag: Int, private val mPosition: Int, offset: Float) : Event<PageScrollEvent>(surfaceId, viewTag) {
constructor(viewTag: Int, mPosition: Int, offset: Float) : this(-1, viewTag, mPosition, offset)
private val mOffset: Float = if (isInfinite(offset) || isNaN(offset)) 0.0f else offset
override fun getEventName(): String {
return EVENT_NAME
}

override fun dispatch(rctEventEmitter: RCTEventEmitter) {
rctEventEmitter.receiveEvent(viewTag, eventName, serializeEventData())
}

private fun serializeEventData(): WritableMap {
override fun getEventData(): WritableMap {
val eventData = Arguments.createMap()
eventData.putInt("position", mPosition)
eventData.putDouble("offset", mOffset.toDouble())
Expand All @@ -44,4 +40,3 @@ class PageScrollEvent(viewTag: Int, private val mPosition: Int, offset: Float) :
// folly::toJson default options don't support serialize NaN or Infinite value
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.reactnativepagerview.event
import com.facebook.react.bridge.Arguments
import com.facebook.react.bridge.WritableMap
import com.facebook.react.uimanager.events.Event
import com.facebook.react.uimanager.events.RCTEventEmitter


/**
Expand All @@ -12,16 +11,17 @@ import com.facebook.react.uimanager.events.RCTEventEmitter
* Additional data provided by this event:
* - pageScrollState - {Idle,Dragging,Settling}
*/
class PageScrollStateChangedEvent(viewTag: Int, private val mPageScrollState: String) : Event<PageScrollStateChangedEvent>(viewTag) {
class PageScrollStateChangedEvent(surfaceId: Int, viewTag: Int, private val mPageScrollState: String) : Event<PageScrollStateChangedEvent>(surfaceId, viewTag) {
constructor(viewTag: Int, mPageScrollState: String) : this(-1, viewTag, mPageScrollState)
override fun getEventName(): String {
return EVENT_NAME
}

override fun dispatch(rctEventEmitter: RCTEventEmitter) {
rctEventEmitter.receiveEvent(viewTag, eventName, serializeEventData())
override fun canCoalesce(): Boolean {
return false
}

private fun serializeEventData(): WritableMap {
override fun getEventData(): WritableMap {
val eventData = Arguments.createMap()
eventData.putString("pageScrollState", mPageScrollState)
return eventData
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.reactnativepagerview.event
import com.facebook.react.bridge.Arguments
import com.facebook.react.bridge.WritableMap
import com.facebook.react.uimanager.events.Event
import com.facebook.react.uimanager.events.RCTEventEmitter


/**
Expand All @@ -12,7 +11,8 @@ import com.facebook.react.uimanager.events.RCTEventEmitter
* Additional data provided by this event:
* - position - index of page that has been selected
*/
class PageSelectedEvent(viewTag: Int, private val mPosition: Int) : Event<PageSelectedEvent>(viewTag) {
class PageSelectedEvent(surfaceId: Int, viewTag: Int, private val mPosition: Int) : Event<PageSelectedEvent>(surfaceId, viewTag) {
constructor(viewTag: Int, mPosition: Int) : this(-1, viewTag, mPosition)
override fun getEventName(): String {
return EVENT_NAME
}
Expand All @@ -21,11 +21,7 @@ class PageSelectedEvent(viewTag: Int, private val mPosition: Int) : Event<PageSe
return false
}

override fun dispatch(rctEventEmitter: RCTEventEmitter) {
rctEventEmitter.receiveEvent(viewTag, eventName, serializeEventData())
}

private fun serializeEventData(): WritableMap {
override fun getEventData(): WritableMap {
val eventData = Arguments.createMap()
eventData.putInt("position", mPosition)
return eventData
Expand Down