From e5f964dff7e96915eda3e9908824b3b73364d246 Mon Sep 17 00:00:00 2001 From: ua1zbe Date: Tue, 18 Aug 2026 15:58:09 +0300 Subject: [PATCH] Toggle monitoring over live connection without reconnect --- .../java/ru/ua1zbe/svxremote/MainActivity.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt b/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt index 48d5c6e..633bbfb 100644 --- a/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt +++ b/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt @@ -537,7 +537,7 @@ class MainActivity : Activity(), SvxService.Listener { }, 300) } - /** Включить/выключить режим мониторинга групп с переподключением. */ + /** Включить/выключить режим мониторинга групп по живому соединению. */ private fun toggleMonitoring() { val enabling = !monitoring if (enabling) { @@ -549,8 +549,18 @@ class MainActivity : Activity(), SvxService.Listener { updateMonitorButton() updatePttEnabled() if (connected) { - svc?.disconnect() - mainHandler.postDelayed({ connect() }, 500) + monitorIdleTask?.let { mainHandler.removeCallbacks(it) } + 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 { connect() }