Browse Source

Keep call metrics visible outside settings on both clients

master
evgeny 4 days ago
parent
commit
1b07a8a708
  1. 9
      tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/CallScreen.kt
  2. 8
      tools/chatgui/src/callwindow.cpp

9
tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/CallScreen.kt

@ -251,6 +251,13 @@ fun CallScreen(
fontSize = 13.sp fontSize = 13.sp
) )
} }
if (phase == CallPhase.ACTIVE) st?.stats?.let { stats ->
Spacer(Modifier.height(8.dp))
Text(stringResource(R.string.call_stats, stats.bufferMs, stats.reserveMs,
stats.minMs, stats.maxMs, "%.2f".format(stats.tempoX100 / 100.0), stats.rttMs, stats.dropped, stats.underruns),
modifier = Modifier.padding(horizontal = 16.dp), color = Color(0xFFAEBCC8),
fontSize = 12.sp, textAlign = TextAlign.Center)
}
Spacer(Modifier.height(40.dp)) Spacer(Modifier.height(40.dp))
} }
@ -350,8 +357,6 @@ fun CallScreen(
text = { text = {
Column(Modifier.verticalScroll(rememberScrollState())) { Column(Modifier.verticalScroll(rememberScrollState())) {
video?.let { CallVideoPanel(it) } video?.let { CallVideoPanel(it) }
st?.stats?.let { stats -> Text(stringResource(R.string.call_stats, stats.bufferMs, stats.reserveMs,
stats.minMs, stats.maxMs, "%.2f".format(stats.tempoX100 / 100.0), stats.rttMs, stats.dropped, stats.underruns)) }
} }
}) })

8
tools/chatgui/src/callwindow.cpp

@ -360,7 +360,7 @@ void CallWindow::setPeerName(const QString& name) {
void CallWindow::setBgpPath(const QString& path) { void CallWindow::setBgpPath(const QString& path) {
m_bgpPathLabel->setText(path); m_bgpPathLabel->setText(path);
m_bgpPathLabel->setVisible(!path.isEmpty() && m_settingsBtn->isChecked()); m_bgpPathLabel->setVisible(m_state == Active && !path.isEmpty());
} }
void CallWindow::setConnectionType(uint8_t type, quint64 nextHop) { void CallWindow::setConnectionType(uint8_t type, quint64 nextHop) {
@ -438,8 +438,8 @@ void CallWindow::updateVideoPresentation() {
} }
bool active = m_state == Active, settings = active && m_settingsBtn->isChecked(); bool active = m_state == Active, settings = active && m_settingsBtn->isChecked();
m_localPreview->setVisible(active && !receiving && !m_localImage.isNull()); m_localPreview->setVisible(active && !receiving && !m_localImage.isNull());
m_connectionLabel->setVisible(settings); m_bgpPathLabel->setVisible(settings && !m_bgpPathLabel->text().isEmpty()); m_connectionLabel->setVisible(active); m_bgpPathLabel->setVisible(active && !m_bgpPathLabel->text().isEmpty());
m_statsLabel->setVisible(settings && !m_statsLabel->text().isEmpty()); m_statsLabel->setVisible(active && !m_statsLabel->text().isEmpty());
m_videoEnabled->setVisible(active); m_settingsBtn->setVisible(active); m_videoEnabled->setVisible(active); m_settingsBtn->setVisible(active);
m_videoControls->setVisible(settings); m_showVideoBtn->setVisible(receiving); m_videoControls->setVisible(settings); m_showVideoBtn->setVisible(receiving);
m_videoStatus->setVisible(active && !m_videoStatus->text().isEmpty()); m_videoStatus->setVisible(active && !m_videoStatus->text().isEmpty());
@ -511,5 +511,5 @@ void CallWindow::setAudioStats(int rtt, int buffer, int tempo, int dropped, int
"ms\nBuffer drops: %7 · Underruns: %8") "ms\nBuffer drops: %7 · Underruns: %8")
.arg(buffer).arg(reserve).arg(minimum).arg(maximum) .arg(buffer).arg(reserve).arg(minimum).arg(maximum)
.arg(tempo / 100.0, 0, 'f', 2).arg(rtt).arg(dropped).arg(underruns)); .arg(tempo / 100.0, 0, 'f', 2).arg(rtt).arg(dropped).arg(underruns));
m_statsLabel->setVisible(m_state == Active && m_settingsBtn->isChecked()); m_statsLabel->setVisible(m_state == Active);
} }

Loading…
Cancel
Save