diff --git a/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt b/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt index b31e990..e2d1848 100644 --- a/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt +++ b/app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt @@ -57,10 +57,10 @@ class MainActivity : Activity(), SvxService.Listener { private lateinit var lblSubtitle: TextView private lateinit var lblCallsign: TextView private lateinit var lblTg: TextView - private lateinit var lblTalkerTitle: TextView private lateinit var lblTalker: TextView private lateinit var lblDuplex: TextView - private lateinit var lblPttHint: TextView + private var lastTalkerCs = "" + private var lastTalkerTg = -1L private lateinit var lblTxState: TextView private lateinit var lblConnectHint: TextView private lateinit var connectZone: View @@ -147,10 +147,8 @@ class MainActivity : Activity(), SvxService.Listener { statusChip = findViewById(R.id.status_chip) lblAppTitle = findViewById(R.id.lbl_app_title) lblSubtitle = findViewById(R.id.lbl_subtitle) - lblTalkerTitle = findViewById(R.id.lbl_talker_title) lblTalker = findViewById(R.id.lbl_talker) lblDuplex = findViewById(R.id.lbl_duplex) - lblPttHint = findViewById(R.id.lbl_ptt_hint) lblTxState = findViewById(R.id.lbl_tx_state) lblConnectHint = findViewById(R.id.lbl_connect_hint) connectZone = findViewById(R.id.connect_zone) @@ -274,7 +272,6 @@ class MainActivity : Activity(), SvxService.Listener { toast(getString(R.string.perm_mic)) return } - lblPttHint.text = getString(R.string.ptt_talking) lblTxState.text = getString(R.string.status_big_talking) showDuplex(getString(R.string.duplex_tx), R.color.danger, null) svc?.startTx() @@ -283,7 +280,6 @@ class MainActivity : Activity(), SvxService.Listener { override fun onPttUp() { Log.d("SVXRemote", "PTT up") svc?.stopTx() - lblPttHint.text = getString(R.string.hold_to_talk) lblTxState.text = if (connected) getString(R.string.status_big_connected) else getString(R.string.status_big_disconnected) @@ -376,7 +372,6 @@ class MainActivity : Activity(), SvxService.Listener { lblTxState.text = getString(R.string.status_big_disconnected) lblTxState.setTextColor(getColor(R.color.danger)) lblConnectHint.text = getString(R.string.hint_connect) - lblPttHint.text = getString(R.string.hold_to_talk) } ReflectorClient.STATE_CONNECTING, @@ -454,9 +449,9 @@ class MainActivity : Activity(), SvxService.Listener { } resetMonitorIdle() } - lblTalkerTitle.text = getString(R.string.talker_now, tg) - lblTalkerTitle.setTextColor(getColor(R.color.text_secondary)) - lblTalker.text = callsign + lastTalkerCs = callsign + lastTalkerTg = tg + updateTalkerLine(active = true) if (!pttButton.isPressed2) { showDuplex(getString(R.string.duplex_rx), R.color.accent, DUPLEX_RX_HIDE_MS) } @@ -464,7 +459,20 @@ class MainActivity : Activity(), SvxService.Listener { } override fun onTalkerStop(tg: Long, callsign: String) { - // последний говоривший остаётся на экране + // последний говоривший остаётся на экране, но без префикса «Говорит» + mainHandler.post { updateTalkerLine(active = false) } + } + + /** Единая строка говорящего: «Говорит …» при приёме, иначе позывной+TG. */ + private fun updateTalkerLine(active: Boolean) { + if (lastTalkerCs.isEmpty()) { + lblTalker.text = "" + return + } + lblTalker.text = if (active) + getString(R.string.talker_active_fmt, lastTalkerCs, lastTalkerTg) + else + getString(R.string.talker_idle_fmt, lastTalkerCs, lastTalkerTg) } override fun onNodeJoined(callsign: String, tg: Long?) { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 463d421..b923f13 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -154,11 +154,24 @@ android:text="@string/status_disconnected" /> + + + - - - - - - - + android:layout_width="170dp" + android:layout_height="170dp" /> Удалить Удалено Мониторинг: %1$s - Говорит TG%1$d + Говорит %1$s TG%2$d + %1$s TG%2$d RX TX DISCONNECTED @@ -63,7 +64,6 @@ ПЕРЕДАЧА Нажмите, чтобы подключиться Нажмите, чтобы отключиться - HOLD TO TALK RX MIC ---