feat(android): show NAT profile and external address for own sockets
This commit is contained in:
1 parent
1dfe349eb8
commit
86c08092af
3 files changed
+25
No files matched your search
+21
@@ -0,0 +1,21 @@
|
||||
package com.utun.chat.ui.components
|
||||
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import com.utun.chat.R
|
||||
import com.utun.chat.data.LocalSocketState
|
||||
|
||||
/** Результат детектора для рабочего сокета; порт TCP остаётся нулевым. */
|
||||
@Composable
|
||||
fun LocalSocketNatInfo(socket: LocalSocketState) {
|
||||
val source = if (socket.natSource == 2) " · STUN" else ""
|
||||
Text(stringResource(socket.natLabelRes) + source,
|
||||
style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
if (socket.externalIp.isNotEmpty()) {
|
||||
val ip = if (socket.externalIp.contains(':')) "[${socket.externalIp}]" else socket.externalIp
|
||||
Text(stringResource(R.string.socket_external_address, "$ip:${socket.externalPort}"),
|
||||
style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,7 @@ import com.utun.chat.data.MemberDetail
|
||||
import com.utun.chat.data.MemberLinks
|
||||
import com.utun.chat.data.LinkStatus
|
||||
import com.utun.chat.data.LocalSocketState
|
||||
import com.utun.chat.ui.components.LocalSocketNatInfo
|
||||
import com.utun.chat.ui.components.PortableRadioIcon
|
||||
import com.utun.chat.ui.components.RadioSpeakerIcon
|
||||
import com.utun.chat.viewmodel.ChatViewModel
|
||||
@@ -427,6 +428,7 @@ private fun MemberDetailCard(
|
||||
color = MaterialTheme.colorScheme.onSurface
|
||||
)
|
||||
}
|
||||
LocalSocketNatInfo(sk)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -41,6 +41,7 @@ import com.utun.chat.data.MicrophonePermission
|
||||
import com.utun.chat.data.LogManager
|
||||
import com.utun.chat.data.ServerEntry
|
||||
import com.utun.chat.data.LocalSocketState
|
||||
import com.utun.chat.ui.components.LocalSocketNatInfo
|
||||
import com.utun.chat.data.VoiceSettings
|
||||
import com.utun.chat.headless.HeadlessService
|
||||
import com.utun.chat.ui.components.BatteryOptimizationSetting
|
||||
@@ -380,6 +381,7 @@ private fun DeveloperSettingsTab(vm: ChatViewModel, onDirty: (Boolean) -> Unit,
|
||||
}
|
||||
Text(s.ifName, style = MaterialTheme.typography.bodySmall,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.fillMaxWidth())
|
||||
LocalSocketNatInfo(s)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user