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() }