no announce logging

This commit is contained in:
callebtc
2025-09-05 16:57:09 +02:00
parent 4b81b7f97a
commit d3ca83cd09
3 changed files with 48 additions and 4 deletions
@@ -13,6 +13,7 @@ object DebugPreferenceManager {
private const val KEY_GATT_SERVER = "gatt_server_enabled"
private const val KEY_GATT_CLIENT = "gatt_client_enabled"
private const val KEY_PACKET_RELAY = "packet_relay_enabled"
private const val KEY_HIDE_ANNOUNCE = "hide_announce_logging"
private const val KEY_MAX_CONN_OVERALL = "max_connections_overall"
private const val KEY_MAX_CONN_SERVER = "max_connections_server"
private const val KEY_MAX_CONN_CLIENT = "max_connections_client"
@@ -35,6 +36,13 @@ object DebugPreferenceManager {
fun getGattServerEnabled(default: Boolean = true): Boolean =
if (ready()) prefs.getBoolean(KEY_GATT_SERVER, default) else default
fun getHideAnnounceLogging(default: Boolean = false): Boolean =
if (ready()) prefs.getBoolean(KEY_HIDE_ANNOUNCE, default) else default
fun setHideAnnounceLogging(value: Boolean) {
if (ready()) prefs.edit().putBoolean(KEY_HIDE_ANNOUNCE, value).apply()
}
fun setGattServerEnabled(value: Boolean) {
if (ready()) prefs.edit().putBoolean(KEY_GATT_SERVER, value).apply()
}
@@ -41,6 +41,9 @@ class DebugSettingsManager private constructor() {
val maxConnectionsOverall: StateFlow<Int> = _maxConnectionsOverall.asStateFlow()
private val _maxServerConnections = MutableStateFlow(8)
val maxServerConnections: StateFlow<Int> = _maxServerConnections.asStateFlow()
private val _hideAnnounceLogging = MutableStateFlow(false)
val hideAnnounceLogging: StateFlow<Boolean> = _hideAnnounceLogging.asStateFlow()
private val _maxClientConnections = MutableStateFlow(8)
val maxClientConnections: StateFlow<Int> = _maxClientConnections.asStateFlow()
@@ -51,6 +54,7 @@ class DebugSettingsManager private constructor() {
_gattServerEnabled.value = DebugPreferenceManager.getGattServerEnabled(true)
_gattClientEnabled.value = DebugPreferenceManager.getGattClientEnabled(true)
_packetRelayEnabled.value = DebugPreferenceManager.getPacketRelayEnabled(true)
_hideAnnounceLogging.value = DebugPreferenceManager.getHideAnnounceLogging(false)
_maxConnectionsOverall.value = DebugPreferenceManager.getMaxConnectionsOverall(8)
_maxServerConnections.value = DebugPreferenceManager.getMaxConnectionsServer(8)
_maxClientConnections.value = DebugPreferenceManager.getMaxConnectionsClient(8)
@@ -115,6 +119,14 @@ class DebugSettingsManager private constructor() {
addDebugMessage(DebugMessage.SystemMessage("🔇 Verbose logging disabled"))
}
}
fun setHideAnnounceLogging(enabled: Boolean) {
DebugPreferenceManager.setHideAnnounceLogging(enabled)
_hideAnnounceLogging.value = enabled
addDebugMessage(DebugMessage.SystemMessage(
if (enabled) "🙈 Hiding ANNOUNCE logs" else "👀 Showing ANNOUNCE logs"
))
}
fun setGattServerEnabled(enabled: Boolean) {
DebugPreferenceManager.setGattServerEnabled(enabled)
@@ -223,6 +235,10 @@ class DebugSettingsManager private constructor() {
fun logIncomingPacket(senderPeerID: String, senderNickname: String?, messageType: String, viaDeviceId: String?) {
if (verboseLoggingEnabled.value) {
// Optional filter: hide ANNOUNCE logs if enabled
if (hideAnnounceLogging.value && messageType.equals("ANNOUNCE", ignoreCase = true)) {
return
}
val who = if (!senderNickname.isNullOrBlank()) "$senderNickname ($senderPeerID)" else senderPeerID
val routeInfo = if (!viaDeviceId.isNullOrBlank()) " via $viaDeviceId" else " (direct)"
addDebugMessage(DebugMessage.PacketEvent(
@@ -288,11 +304,16 @@ class DebugSettingsManager private constructor() {
val ttlStr = ttl?.toString() ?: "?"
if (verboseLoggingEnabled.value) {
addDebugMessage(
DebugMessage.RelayEvent(
"♻️ Relayed $packetType by $senderLabel from $fromName (${fromPeerID ?: "?"}, $fromAddr) to $toName (${toPeerID ?: "?"}, $toAddr) with TTL $ttlStr"
// Optional filter: hide ANNOUNCE relay logs if enabled
if (hideAnnounceLogging.value && packetType.equals("ANNOUNCE", ignoreCase = true)) {
// Still update stats below, but do not emit a debug message
} else {
addDebugMessage(
DebugMessage.RelayEvent(
"♻️ Relayed $packetType by $senderLabel from $fromName (${fromPeerID ?: "?"}, $fromAddr) to $toName (${toPeerID ?: "?"}, $toAddr) with TTL $ttlStr"
)
)
)
}
}
// Update rolling statistics
@@ -120,6 +120,21 @@ fun DebugSettingsSheet(
fontSize = 11.sp,
color = colorScheme.onSurface.copy(alpha = 0.7f)
)
// New: hide ANNOUNCE logs toggle
Row(verticalAlignment = Alignment.CenterVertically) {
Text("hide announce logs", fontFamily = FontFamily.Monospace, modifier = Modifier.weight(1f))
val hideAnnounce by manager.hideAnnounceLogging.collectAsState()
Switch(
checked = hideAnnounce,
onCheckedChange = { manager.setHideAnnounceLogging(it) }
)
}
Text(
"suppress debug log entries for received/relayed ANNOUNCE packets",
fontFamily = FontFamily.Monospace,
fontSize = 11.sp,
color = colorScheme.onSurface.copy(alpha = 0.7f)
)
}
}
}