diff --git a/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt b/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt index 633bbfb..b87cdbf 100644 --- a/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt +++ b/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt @@ -396,17 +396,24 @@ class MainActivity : Activity(), SvxService.Listener { override fun onTalkerStart(tg: Long, callsign: String) { mainHandler.post { + Log.d("SVXRemote", "talkerStart tg=$tg cs=$callsign monitoring=$monitoring ptt=${pttButton.isPressed2}") talkLog.addLast(TalkLogEntry(System.currentTimeMillis(), callsign, tg)) while (talkLog.size > TALK_LOG_MAX) { talkLog.removeFirst() } - // Мониторинг: переключаемся на группу, где началась передача, - // и даём ей 15 секунд; после тишины вернёмся ко всем группам. - // Во время своей передачи группу не меняем. - if (monitoring && !pttButton.isPressed2) { - svc?.selectGroup(tg) + if (monitoring) { + // Переключаемся на группу, где началась передача, и даём ей + // 15 секунд; после тишины вернёмся ко всем группам. + // Во время своей передачи группу не меняем. + if (!pttButton.isPressed2) { + svc?.selectGroup(tg) + lblTalkerTitle.text = getString(R.string.talker_mon, callsign, tg) + lblTalkerTitle.setTextColor(getColor(R.color.text_secondary)) + lblTalker.text = callsign + } resetMonitorIdle() - lblTalkerTitle.text = getString(R.string.talker_mon, callsign, tg) + } else { + lblTalkerTitle.text = getString(R.string.talker_now, callsign) lblTalkerTitle.setTextColor(getColor(R.color.text_secondary)) lblTalker.text = callsign } @@ -488,7 +495,8 @@ class MainActivity : Activity(), SvxService.Listener { private fun resetMonitorIdle() { monitorIdleTask?.let { mainHandler.removeCallbacks(it) } val task = Runnable { - if (monitoring && connected) { + // Во время своей передачи на базу не возвращаемся + if (monitoring && connected && !pttButton.isPressed2) { svc?.selectGroup(settings.talkGroup) } }