mirror of
https://github.com/lone-cloud/prism-android
synced 2026-06-03 11:03:10 -07:00
35 lines
950 B
Kotlin
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)
|
|
}
|
|
}
|