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
---