Toggle monitoring over live connection without reconnect

This commit is contained in:
ua1zbe
2026-08-18 15:58:09 +03:00
parent 05ba30e0c6
commit e5f964dff7

View File

@@ -537,7 +537,7 @@ class MainActivity : Activity(), SvxService.Listener {
}, 300) }, 300)
} }
/** Включить/выключить режим мониторинга групп с переподключением. */ /** Включить/выключить режим мониторинга групп по живому соединению. */
private fun toggleMonitoring() { private fun toggleMonitoring() {
val enabling = !monitoring val enabling = !monitoring
if (enabling) { if (enabling) {
@@ -549,8 +549,18 @@ class MainActivity : Activity(), SvxService.Listener {
updateMonitorButton() updateMonitorButton()
updatePttEnabled() updatePttEnabled()
if (connected) { if (connected) {
svc?.disconnect() monitorIdleTask?.let { mainHandler.removeCallbacks(it) }
mainHandler.postDelayed({ connect() }, 500) if (enabling) {
// Без переподключения: сервер начнёт присылать уведомления
// со всех групп, сами сидим на базовой.
svc?.setMonitorTgs(settings.groups)
svc?.selectGroup(settings.talkGroup)
statusChip.text = getString(R.string.status_monitoring, monitorTgLabel())
} else {
svc?.selectGroup(settings.talkGroup)
svc?.setMonitorTgs(listOf(settings.talkGroup))
statusChip.text = getString(R.string.status_connected)
}
} else { } else {
connect() connect()
} }