1.0.12: UI — убрана HOLD TO TALK, PTT крупнее, строка говорящего между блоками
- Удалена надпись HOLD TO TALK (lbl_ptt_hint). - PTT-кнопка увеличена 130→170 dp. - Строка говорящего перенесена между блоками «на связи» и индикаторами; единый формат: «Говорит UA1ZBE TG12» при приёме, «UA1ZBE TG12» когда приёма нет (шрифт прежний).
This commit is contained in:
@@ -57,10 +57,10 @@ class MainActivity : Activity(), SvxService.Listener {
|
|||||||
private lateinit var lblSubtitle: TextView
|
private lateinit var lblSubtitle: TextView
|
||||||
private lateinit var lblCallsign: TextView
|
private lateinit var lblCallsign: TextView
|
||||||
private lateinit var lblTg: TextView
|
private lateinit var lblTg: TextView
|
||||||
private lateinit var lblTalkerTitle: TextView
|
|
||||||
private lateinit var lblTalker: TextView
|
private lateinit var lblTalker: TextView
|
||||||
private lateinit var lblDuplex: 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 lblTxState: TextView
|
||||||
private lateinit var lblConnectHint: TextView
|
private lateinit var lblConnectHint: TextView
|
||||||
private lateinit var connectZone: View
|
private lateinit var connectZone: View
|
||||||
@@ -147,10 +147,8 @@ class MainActivity : Activity(), SvxService.Listener {
|
|||||||
statusChip = findViewById(R.id.status_chip)
|
statusChip = findViewById(R.id.status_chip)
|
||||||
lblAppTitle = findViewById(R.id.lbl_app_title)
|
lblAppTitle = findViewById(R.id.lbl_app_title)
|
||||||
lblSubtitle = findViewById(R.id.lbl_subtitle)
|
lblSubtitle = findViewById(R.id.lbl_subtitle)
|
||||||
lblTalkerTitle = findViewById(R.id.lbl_talker_title)
|
|
||||||
lblTalker = findViewById(R.id.lbl_talker)
|
lblTalker = findViewById(R.id.lbl_talker)
|
||||||
lblDuplex = findViewById(R.id.lbl_duplex)
|
lblDuplex = findViewById(R.id.lbl_duplex)
|
||||||
lblPttHint = findViewById(R.id.lbl_ptt_hint)
|
|
||||||
lblTxState = findViewById(R.id.lbl_tx_state)
|
lblTxState = findViewById(R.id.lbl_tx_state)
|
||||||
lblConnectHint = findViewById(R.id.lbl_connect_hint)
|
lblConnectHint = findViewById(R.id.lbl_connect_hint)
|
||||||
connectZone = findViewById(R.id.connect_zone)
|
connectZone = findViewById(R.id.connect_zone)
|
||||||
@@ -274,7 +272,6 @@ class MainActivity : Activity(), SvxService.Listener {
|
|||||||
toast(getString(R.string.perm_mic))
|
toast(getString(R.string.perm_mic))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
lblPttHint.text = getString(R.string.ptt_talking)
|
|
||||||
lblTxState.text = getString(R.string.status_big_talking)
|
lblTxState.text = getString(R.string.status_big_talking)
|
||||||
showDuplex(getString(R.string.duplex_tx), R.color.danger, null)
|
showDuplex(getString(R.string.duplex_tx), R.color.danger, null)
|
||||||
svc?.startTx()
|
svc?.startTx()
|
||||||
@@ -283,7 +280,6 @@ class MainActivity : Activity(), SvxService.Listener {
|
|||||||
override fun onPttUp() {
|
override fun onPttUp() {
|
||||||
Log.d("SVXRemote", "PTT up")
|
Log.d("SVXRemote", "PTT up")
|
||||||
svc?.stopTx()
|
svc?.stopTx()
|
||||||
lblPttHint.text = getString(R.string.hold_to_talk)
|
|
||||||
lblTxState.text =
|
lblTxState.text =
|
||||||
if (connected) getString(R.string.status_big_connected)
|
if (connected) getString(R.string.status_big_connected)
|
||||||
else getString(R.string.status_big_disconnected)
|
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.text = getString(R.string.status_big_disconnected)
|
||||||
lblTxState.setTextColor(getColor(R.color.danger))
|
lblTxState.setTextColor(getColor(R.color.danger))
|
||||||
lblConnectHint.text = getString(R.string.hint_connect)
|
lblConnectHint.text = getString(R.string.hint_connect)
|
||||||
lblPttHint.text = getString(R.string.hold_to_talk)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ReflectorClient.STATE_CONNECTING,
|
ReflectorClient.STATE_CONNECTING,
|
||||||
@@ -454,9 +449,9 @@ class MainActivity : Activity(), SvxService.Listener {
|
|||||||
}
|
}
|
||||||
resetMonitorIdle()
|
resetMonitorIdle()
|
||||||
}
|
}
|
||||||
lblTalkerTitle.text = getString(R.string.talker_now, tg)
|
lastTalkerCs = callsign
|
||||||
lblTalkerTitle.setTextColor(getColor(R.color.text_secondary))
|
lastTalkerTg = tg
|
||||||
lblTalker.text = callsign
|
updateTalkerLine(active = true)
|
||||||
if (!pttButton.isPressed2) {
|
if (!pttButton.isPressed2) {
|
||||||
showDuplex(getString(R.string.duplex_rx), R.color.accent, DUPLEX_RX_HIDE_MS)
|
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) {
|
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?) {
|
override fun onNodeJoined(callsign: String, tg: Long?) {
|
||||||
|
|||||||
@@ -154,11 +154,24 @@
|
|||||||
android:text="@string/status_disconnected" />
|
android:text="@string/status_disconnected" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Говорящий (единая строка): «Говорит …» при приёме, иначе позывной+TG -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/lbl_talker"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="14dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textColor="@color/accent"
|
||||||
|
android:textSize="22sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:ellipsize="end" />
|
||||||
|
|
||||||
<!-- S-метры -->
|
<!-- S-метры -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="28dp"
|
android:layout_marginTop="16dp"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:background="@drawable/bg_section"
|
android:background="@drawable/bg_section"
|
||||||
android:paddingStart="14dp"
|
android:paddingStart="14dp"
|
||||||
@@ -223,28 +236,6 @@
|
|||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- Последний говоривший -->
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/lbl_talker_title"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="24dp"
|
|
||||||
android:gravity="center"
|
|
||||||
android:textColor="@color/text_secondary"
|
|
||||||
android:textSize="13sp"
|
|
||||||
android:text="@string/talker_last_none" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/lbl_talker"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="center"
|
|
||||||
android:textColor="@color/accent"
|
|
||||||
android:textSize="22sp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:ellipsize="end" />
|
|
||||||
|
|
||||||
<!-- Индикация направления: RX (приём) / TX (передача) -->
|
<!-- Индикация направления: RX (приём) / TX (передача) -->
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/lbl_duplex"
|
android:id="@+id/lbl_duplex"
|
||||||
@@ -264,19 +255,8 @@
|
|||||||
<!-- Кнопка PTT -->
|
<!-- Кнопка PTT -->
|
||||||
<ru.ua1zbe.svxremote.ui.PttButton
|
<ru.ua1zbe.svxremote.ui.PttButton
|
||||||
android:id="@+id/ptt_button"
|
android:id="@+id/ptt_button"
|
||||||
android:layout_width="130dp"
|
android:layout_width="170dp"
|
||||||
android:layout_height="130dp" />
|
android:layout_height="170dp" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/lbl_ptt_hint"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="14dp"
|
|
||||||
android:gravity="center"
|
|
||||||
android:textColor="@color/text_secondary"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
android:text="@string/hold_to_talk" />
|
|
||||||
|
|
||||||
<Space
|
<Space
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@@ -55,7 +55,8 @@
|
|||||||
<string name="record_delete_yes">Удалить</string>
|
<string name="record_delete_yes">Удалить</string>
|
||||||
<string name="record_deleted">Удалено</string>
|
<string name="record_deleted">Удалено</string>
|
||||||
<string name="status_monitoring">Мониторинг: %1$s</string>
|
<string name="status_monitoring">Мониторинг: %1$s</string>
|
||||||
<string name="talker_now">Говорит TG%1$d</string>
|
<string name="talker_active_fmt">Говорит %1$s TG%2$d</string>
|
||||||
|
<string name="talker_idle_fmt">%1$s TG%2$d</string>
|
||||||
<string name="duplex_rx">RX</string>
|
<string name="duplex_rx">RX</string>
|
||||||
<string name="duplex_tx">TX</string>
|
<string name="duplex_tx">TX</string>
|
||||||
<string name="status_big_disconnected">DISCONNECTED</string>
|
<string name="status_big_disconnected">DISCONNECTED</string>
|
||||||
@@ -63,7 +64,6 @@
|
|||||||
<string name="status_big_talking">ПЕРЕДАЧА</string>
|
<string name="status_big_talking">ПЕРЕДАЧА</string>
|
||||||
<string name="hint_connect">Нажмите, чтобы подключиться</string>
|
<string name="hint_connect">Нажмите, чтобы подключиться</string>
|
||||||
<string name="hint_disconnect">Нажмите, чтобы отключиться</string>
|
<string name="hint_disconnect">Нажмите, чтобы отключиться</string>
|
||||||
<string name="hold_to_talk">HOLD TO TALK</string>
|
|
||||||
<string name="meter_rx">RX</string>
|
<string name="meter_rx">RX</string>
|
||||||
<string name="meter_mic">MIC</string>
|
<string name="meter_mic">MIC</string>
|
||||||
<string name="meter_idle">---</string>
|
<string name="meter_idle">---</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user