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)
|
||||
refreshUi()
|
||||
svc?.selectGroup(tg)
|
||||
if (!monitoring) {
|
||||
svc?.setMonitorTgs(listOf(tg))
|
||||
}
|
||||
}
|
||||
|
||||
private fun monitorTgLabel(): String =
|
||||
|
||||
@@ -93,6 +93,11 @@ class SvxService : Service(), ReflectorClient.Callbacks {
|
||||
Thread { client.selectGroup(tg) }.start()
|
||||
}
|
||||
|
||||
fun setMonitorTgs(tgs: List<Long>) {
|
||||
// Сеть запрещена в главном потоке (NetworkOnMainThreadException)
|
||||
Thread { client.setMonitorTgs(tgs) }.start()
|
||||
}
|
||||
|
||||
fun startTx() {
|
||||
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() {
|
||||
val sock = udpSocket
|
||||
|
||||
Reference in New Issue
Block a user