package com.ultron.jarvistv import android.os.Handler import android.os.Looper /** * Dead-simple event bus so the ControlService can push status lines to the Jarvis screen * without holding an Activity reference. MainActivity subscribes while visible. */ object UiBus { private val main = Handler(Looper.getMainLooper()) @Volatile private var listener: ((String) -> Unit)? = null fun subscribe(l: (String) -> Unit) { listener = l } fun unsubscribe() { listener = null } fun status(line: String) { main.post { listener?.invoke(line) } } }