prism-android/app/src/main/java/app/lonecloud/prism/api/MessageSender.kt
2026-02-12 03:47:20 -08:00

35 lines
950 B
Kotlin

package app.lonecloud.prism.api
import android.content.Context
import android.util.Log
import app.lonecloud.prism.api.data.ClientMessage
import app.lonecloud.prism.services.RestartWorker
import app.lonecloud.prism.utils.TAG
import okhttp3.WebSocket
object MessageSender {
private var websocket: WebSocket? = null
fun newWs(ws: WebSocket) {
synchronized(this) {
websocket = ws
}
}
fun send(context: Context, message: ClientMessage) {
synchronized(this) {
websocket?.let {
Log.d(TAG, "Sending: ${message::class.java.simpleName}")
message.send(it)
} ?: run {
Log.d(TAG, "Msg not sent, will be during restart")
RestartWorker.run(context, delay = 0)
}
}
}
fun ping(context: Context) {
send(context, ClientMessage.Ping)
ServerConnection.waitingPong.set(true)
}
}