Начал делать приложение для Android на ReacNative, которая отображает данные полученные с неким устройством. Взаимодействие с устройством осуществляется через SDK для которого нужно определить класс с методами которые будут выполнятся когда происходит некоторые event-ы. Код ниже работает но callback в kotlin можно вызвать только один раз. Как передать эти методы из js чтобы выполнилить каждый раз?
JS:
// ...
function init() {
Device.onStatusChange((status) => {
console.log(`Status changed to: ${status}`);
});
Device.init();
}
// ...
Kotlin:
import com.facebook.react.bridge.Callback
class Device {
var statusCallback: Callback? = null
var statusChagne
@ReactMethod
init() {
Hub.getInstance().addListener(listener())
Hub.getInstance().connect()
}
fun listener(): DeviceListener {
return object: AbstractDeviceListener() {
override public fun onStatusChange(status: String, timestamp: Long) {
statusCallback?.invoke(status)
}
// ...
}
}
@ReactMethod
fun onStatusChange(callback: Callback) {
statusCallback = callback;
}
}