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) { override fun onTalkerStart(tg: Long, callsign: String) {
mainHandler.post { mainHandler.post {
Log.d("SVXRemote", "talkerStart tg=$tg cs=$callsign monitoring=$monitoring ptt=${pttButton.isPressed2}")
talkLog.addLast(TalkLogEntry(System.currentTimeMillis(), callsign, tg)) talkLog.addLast(TalkLogEntry(System.currentTimeMillis(), callsign, tg))
while (talkLog.size > TALK_LOG_MAX) { while (talkLog.size > TALK_LOG_MAX) {
talkLog.removeFirst() talkLog.removeFirst()
} }
// Мониторинг: переключаемся на группу, где началась передача, if (monitoring) {
// и даём ей 15 секунд; после тишины вернёмся ко всем группам. // Переключаемся на группу, где началась передача, и даём ей
// Во время своей передачи группу не меняем. // 15 секунд; после тишины вернёмся ко всем группам.
if (monitoring && !pttButton.isPressed2) { // Во время своей передачи группу не меняем.
svc?.selectGroup(tg) 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() 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)) lblTalkerTitle.setTextColor(getColor(R.color.text_secondary))
lblTalker.text = callsign lblTalker.text = callsign
} }
@@ -488,7 +495,8 @@ class MainActivity : Activity(), SvxService.Listener {
private fun resetMonitorIdle() { private fun resetMonitorIdle() {
monitorIdleTask?.let { mainHandler.removeCallbacks(it) } monitorIdleTask?.let { mainHandler.removeCallbacks(it) }
val task = Runnable { val task = Runnable {
if (monitoring && connected) { // Во время своей передачи на базу не возвращаемся
if (monitoring && connected && !pttButton.isPressed2) {
svc?.selectGroup(settings.talkGroup) svc?.selectGroup(settings.talkGroup)
} }
} }