class
SerialDataReceiver: SerialInputOutputManager.Listener {
interface
Listener {
fun onReceive(data: ByteArray)
}
private
val listeners = hashSetOf<SerialDataReceiver.Listener>()
fun registerListener(listener: SerialInputOut.Listener) {
listeners.add(listener)
}
fun unregisterListener(listener: SerialDataReceiver.Listener) {
val iterator = listeners.iterator()
while
(iterator.hasNext()) {
val nextListener = iterator.next()
if
(nextListener == listener) {
iterator.remove()
}
}
}
override fun onNewData(data: ByteArray) {
for
(listener in listeners) {
listener.onReceive(data)
}
}
}
open
class
BaseSprayActivity : BaseActivity(), SerialDataReceiver.Listener {
private
val serialDataReceiver = SerialDataReceiver()
@Override
fun onResume() {
super
.onResume()
serialDataReceiver.registerListener(
this
)
}
@Override
fun onStop(...) {
super
.onStop(...)
serialDataReceiver.unregisterListener(
this
)
}
override fun onReceive(data: ByteArray) {
}
}