Compare commits
5 Commits
0b51e63262
...
v1.0.5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
531ec51fb6 | ||
|
|
e523bf756b | ||
|
|
ef72a2dc7f | ||
|
|
ef4fa24ba5 | ||
|
|
a1b2bdaa1c |
@@ -11,8 +11,8 @@ android {
|
||||
applicationId = "ru.ua1zbe.svxremote"
|
||||
minSdk = 26
|
||||
targetSdk = 34
|
||||
versionCode = 6
|
||||
versionName = "1.0.4"
|
||||
versionCode = 7
|
||||
versionName = "1.0.5"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@@ -21,6 +21,10 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig = true
|
||||
}
|
||||
|
||||
lint {
|
||||
checkReleaseBuilds = false
|
||||
abortOnError = false
|
||||
|
||||
@@ -432,7 +432,13 @@ class MainActivity : Activity(), SvxService.Listener {
|
||||
|
||||
/** Включить/выключить режим мониторинга групп с переподключением. */
|
||||
private fun toggleMonitoring() {
|
||||
monitoring = !monitoring
|
||||
val enabling = !monitoring
|
||||
if (enabling) {
|
||||
showToast(R.string.monitoring_dev_warning, 10000)
|
||||
} else {
|
||||
showToast(R.string.monitor_off)
|
||||
}
|
||||
monitoring = enabling
|
||||
priorityActive = false
|
||||
updateMonitorButton()
|
||||
updatePttEnabled()
|
||||
@@ -444,6 +450,15 @@ class MainActivity : Activity(), SvxService.Listener {
|
||||
}
|
||||
}
|
||||
|
||||
/** Окно с сообщением на заданное время (мс). */
|
||||
private fun showToast(resId: Int, durationMs: Int = Toast.LENGTH_SHORT) {
|
||||
val toast = Toast.makeText(this, resId, Toast.LENGTH_SHORT)
|
||||
toast.show()
|
||||
if (durationMs > Toast.LENGTH_SHORT) {
|
||||
mainHandler.postDelayed({ toast.cancel() }, durationMs.toLong())
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateMonitorButton() {
|
||||
val active = monitoring
|
||||
btnMonitor.imageTintList = ColorStateList.valueOf(
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package ru.ua1zbe.svxremote.proto
|
||||
|
||||
import android.util.Log
|
||||
import java.net.DatagramPacket
|
||||
import java.net.DatagramSocket
|
||||
import java.net.InetAddress
|
||||
@@ -7,7 +8,7 @@ import java.net.InetSocketAddress
|
||||
import java.net.Socket
|
||||
import java.net.SocketTimeoutException
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import android.util.Log
|
||||
import ru.ua1zbe.svxremote.BuildConfig
|
||||
|
||||
/**
|
||||
* Клиент рефлектора SVXLink (протокол v2, авторизация AUTH_KEY, аудио Opus по UDP).
|
||||
@@ -50,7 +51,9 @@ class ReflectorClient(
|
||||
const val RECONNECT_DELAY_MS = 5000L
|
||||
|
||||
const val CLIENT_SW_INFO = "SVXHomyak"
|
||||
const val CLIENT_SW_VERSION = "1.0.0"
|
||||
// Версия ПО передаётся на сервер для дашборда; берём из BuildConfig,
|
||||
// чтобы не расходилась с versionName в build.gradle.kts
|
||||
val CLIENT_SW_VERSION = BuildConfig.VERSION_NAME
|
||||
}
|
||||
|
||||
data class Settings(
|
||||
|
||||
@@ -195,9 +195,11 @@ object MsgBuilder {
|
||||
return RcMessage(ReflectorProtocol.MSG_TG_MONITOR, w.toByteArray())
|
||||
}
|
||||
|
||||
/** MsgNodeInfo v2: JSON-строка с данными клиента (версия ПО и пр.). */
|
||||
/** MsgNodeInfo v2: JSON-строка с данными клиента (версия ПО и пр.).
|
||||
* Рефлектор вливает JSON в статус узла, дашборд показывает поле
|
||||
* «swVer» (как у svxlink-узлов). */
|
||||
fun nodeInfo(swInfo: String, swVersion: String): RcMessage {
|
||||
val json = "{\"swInfo\":\"$swInfo\",\"swVersion\":\"$swVersion\"}"
|
||||
val json = "{\"swInfo\":\"$swInfo\",\"swVer\":\"$swVersion\"}"
|
||||
return RcMessage(ReflectorProtocol.MSG_NODE_INFO, BinWriter().str(json).toByteArray())
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<string name="node_tg_suffix"> (группа %1$d)</string>
|
||||
<string name="node_with_tg">%1$s — TG%2$d</string>
|
||||
<string name="btn_save">Сохранить</string>
|
||||
<string name="app_version">SVXhomyak — v1.0.4</string>
|
||||
<string name="app_version">SVXhomyak — v1.0.5</string>
|
||||
<string name="saved">Сохранено</string>
|
||||
<string name="pref_callsign_hint">например UA1ZBE</string>
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
<string name="app_title">SVXHomyak</string>
|
||||
<string name="btn_power">Выключить: отключиться и закрыть</string>
|
||||
<string name="btn_monitor">Мониторинг групп (нажмите, чтобы включить)</string>
|
||||
<string name="monitoring_dev_warning">Функция находится в разработке. Может работать некорректно!</string>
|
||||
<string name="monitor_off">Обычный режим</string>
|
||||
<string name="btn_monitor_on">Мониторинг групп включен (нажмите, чтобы выключить)</string>
|
||||
<string name="status_monitoring">Мониторинг: %1$s</string>
|
||||
<string name="talker_mon">Говорит: %1$s · TG%2$d</string>
|
||||
|
||||
Reference in New Issue
Block a user