Fix talker label in normal mode; keep base group during own TX

This commit is contained in:
ua1zbe
2026-08-18 16:10:32 +03:00
parent 43890117b2
commit 2d85b0587b

View File

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