package co.ab180.airbridge.reactnative.module import android.net.Uri import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContext import com.facebook.react.bridge.ReactContextBaseJavaModule import com.facebook.react.bridge.ReactMethod import com.facebook.react.modules.core.DeviceEventManagerModule import java.lang.ref.WeakReference internal class DeeplinkInteractor( reactContext: ReactApplicationContext? ) : ReactContextBaseJavaModule(reactContext) { companion object { private var initialDeeplink: Uri? = null internal var onDeeplinkReceived: (Uri) -> Unit = { initialDeeplink = it } } override fun getName(): String = "DeeplinkInteractor" @ReactMethod fun listen() { val weakThis = WeakReference(this) if (initialDeeplink != null) { weakThis.get()?.reactApplicationContext ?.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java) ?.emit("airbridge.deeplink", initialDeeplink.toString()) initialDeeplink = null } onDeeplinkReceived = { deeplink -> weakThis.get()?.reactApplicationContext ?.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java) ?.emit("airbridge.deeplink", deeplink.toString()) } } @ReactMethod fun addListener(eventName: String) {} @ReactMethod fun removeListeners(count: Int) {} }