Update monitored TG when switching group live
This commit is contained in:
@@ -554,6 +554,9 @@ class MainActivity : Activity(), SvxService.Listener {
|
|||||||
Prefs.save(this, settings)
|
Prefs.save(this, settings)
|
||||||
refreshUi()
|
refreshUi()
|
||||||
svc?.selectGroup(tg)
|
svc?.selectGroup(tg)
|
||||||
|
if (!monitoring) {
|
||||||
|
svc?.setMonitorTgs(listOf(tg))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun monitorTgLabel(): String =
|
private fun monitorTgLabel(): String =
|
||||||
|
|||||||
@@ -93,6 +93,11 @@ class SvxService : Service(), ReflectorClient.Callbacks {
|
|||||||
Thread { client.selectGroup(tg) }.start()
|
Thread { client.selectGroup(tg) }.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setMonitorTgs(tgs: List<Long>) {
|
||||||
|
// Сеть запрещена в главном потоке (NetworkOnMainThreadException)
|
||||||
|
Thread { client.setMonitorTgs(tgs) }.start()
|
||||||
|
}
|
||||||
|
|
||||||
fun startTx() {
|
fun startTx() {
|
||||||
engine.startCapture { packet -> client.sendAudio(packet) }
|
engine.startCapture { packet -> client.sendAudio(packet) }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -176,6 +176,21 @@ class ReflectorClient(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Переключить группы мониторинга на живом соединении. */
|
||||||
|
fun setMonitorTgs(tgs: List<Long>) {
|
||||||
|
val sock = tcpSocket
|
||||||
|
if (sock == null || !running.get()) {
|
||||||
|
Log.d(TAG, "setMonitorTgs $tgs skipped (sock=${sock != null} running=${running.get()})")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Log.d(TAG, "setMonitorTgs $tgs")
|
||||||
|
sendTcp(sock, MsgBuilder.tgMonitor(tgs))
|
||||||
|
} catch (e: Exception) {
|
||||||
|
Log.w(TAG, "setMonitorTgs failed: ${e.javaClass.simpleName}: ${e.message}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Конец передачи. */
|
/** Конец передачи. */
|
||||||
fun sendAudioFlush() {
|
fun sendAudioFlush() {
|
||||||
val sock = udpSocket
|
val sock = udpSocket
|
||||||
|
|||||||
Reference in New Issue
Block a user