@@ -51,22 +51,22 @@ fun MdvConnectionTelemetryCard(
5151 Column (
5252 modifier = Modifier
5353 .fillMaxWidth()
54- .padding(MdvSpace .S4 ),
55- verticalArrangement = Arrangement .spacedBy(MdvSpace .S3 )
54+ .padding(MdvSpace .S4 )
5655 ) {
5756 // Header Row: Status and Duration
5857 Row (
5958 modifier = Modifier .fillMaxWidth(),
6059 horizontalArrangement = Arrangement .SpaceBetween ,
6160 verticalAlignment = Alignment .CenterVertically
6261 ) {
63- Column {
62+ Column (modifier = Modifier .weight( 1f )) {
6463 Text (
6564 text = stringResource(R .string.home_connection_status_title).uppercase(),
6665 style = MaterialTheme .typography.labelSmall,
6766 color = MdvColor .PrimaryDim ,
6867 fontWeight = FontWeight .Bold
6968 )
69+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(2 .dp))
7070 val statusText = when (vpnState) {
7171 VpnManager .VpnState .CONNECTED -> stringResource(R .string.home_connection_running)
7272 VpnManager .VpnState .CONNECTING -> stringResource(R .string.home_connection_preparing)
@@ -88,13 +88,14 @@ fun MdvConnectionTelemetryCard(
8888 }
8989
9090 if (connectedDurationSeconds > 0 ) {
91- Column (horizontalAlignment = Alignment .End ) {
91+ Column (horizontalAlignment = Alignment .End , modifier = Modifier .padding(start = 8 .dp) ) {
9292 Text (
9393 text = " SESSION" ,
9494 style = MaterialTheme .typography.labelSmall,
9595 color = MdvColor .OnSurfaceVariant ,
9696 fontWeight = FontWeight .Bold
9797 )
98+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(2 .dp))
9899 Text (
99100 text = formatDuration(connectedDurationSeconds),
100101 style = MaterialTheme .typography.titleMedium,
@@ -107,14 +108,14 @@ fun MdvConnectionTelemetryCard(
107108
108109 // Scanning Progress Section
109110 if (scanStatus.scanning || isConnecting) {
111+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(MdvSpace .S3 ))
110112 androidx.compose.material3.Surface (
111113 shape = androidx.compose.foundation.shape.RoundedCornerShape (12 .dp),
112114 color = MdvColor .SurfaceHigh ,
113115 modifier = Modifier .fillMaxWidth()
114116 ) {
115117 Column (
116- modifier = Modifier .padding(MdvSpace .S3 ),
117- verticalArrangement = Arrangement .spacedBy(8 .dp)
118+ modifier = Modifier .padding(MdvSpace .S3 )
118119 ) {
119120 Row (
120121 modifier = Modifier .fillMaxWidth(),
@@ -132,6 +133,7 @@ fun MdvConnectionTelemetryCard(
132133 fontWeight = FontWeight .Bold
133134 )
134135 }
136+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(8 .dp))
135137 LinearProgressIndicator (
136138 progress = { scanProgress },
137139 modifier = Modifier
@@ -142,6 +144,7 @@ fun MdvConnectionTelemetryCard(
142144 strokeCap = androidx.compose.ui.graphics.StrokeCap .Round
143145 )
144146 if (scanStatus.validCount > 0 || scanStatus.rejectedCount > 0 ) {
147+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(8 .dp))
145148 Row (
146149 modifier = Modifier .fillMaxWidth(),
147150 horizontalArrangement = Arrangement .SpaceBetween
@@ -167,6 +170,7 @@ fun MdvConnectionTelemetryCard(
167170 }
168171 }
169172 if (scanStatus.lastResolver.isNotBlank()) {
173+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(6 .dp))
170174 Text (
171175 text = " ${scanStatus.lastResolver} • ${scanStatus.lastDecision} " ,
172176 style = MaterialTheme .typography.labelSmall,
@@ -181,6 +185,7 @@ fun MdvConnectionTelemetryCard(
181185
182186 // Network Traffic Grid
183187 if (downloadTotalBytes > 0 || uploadTotalBytes > 0 || downBps > 0 || upBps > 0 ) {
188+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(MdvSpace .S3 ))
184189 Row (
185190 modifier = Modifier .fillMaxWidth(),
186191 horizontalArrangement = Arrangement .spacedBy(MdvSpace .S3 )
@@ -251,30 +256,33 @@ fun MdvConnectionTelemetryCard(
251256
252257 // Extra Info (MTU, Active Resolvers, SOCKS)
253258 if (vpnState == VpnManager .VpnState .CONNECTED ) {
259+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(MdvSpace .S3 ))
254260 Column (
255- modifier = Modifier .fillMaxWidth(),
256- verticalArrangement = Arrangement .spacedBy(4 .dp)
261+ modifier = Modifier .fillMaxWidth()
257262 ) {
258263 if (scanStatus.activeResolvers > 0 ) {
259264 Row (modifier = Modifier .fillMaxWidth(), horizontalArrangement = Arrangement .SpaceBetween ) {
260265 Text (" Active Resolvers" , style = MaterialTheme .typography.bodySmall, color = MdvColor .OnSurfaceVariant )
261266 Text (scanStatus.activeResolvers.toString(), style = MaterialTheme .typography.bodySmall, color = MdvColor .OnSurface , fontWeight = FontWeight .Bold )
262267 }
268+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(4 .dp))
263269 }
264270 if (scanStatus.syncedUploadMtu > 0 || scanStatus.syncedDownloadMtu > 0 ) {
265271 Row (modifier = Modifier .fillMaxWidth(), horizontalArrangement = Arrangement .SpaceBetween ) {
266272 Text (" Synced MTU (Up/Down)" , style = MaterialTheme .typography.bodySmall, color = MdvColor .OnSurfaceVariant )
267273 Text (" ${scanStatus.syncedUploadMtu} / ${scanStatus.syncedDownloadMtu} " , style = MaterialTheme .typography.bodySmall, color = MdvColor .OnSurface , fontWeight = FontWeight .Bold )
268274 }
275+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(4 .dp))
269276 }
270277 Row (modifier = Modifier .fillMaxWidth(), horizontalArrangement = Arrangement .SpaceBetween ) {
271278 Text (" SOCKS5 Proxy" , style = MaterialTheme .typography.bodySmall, color = MdvColor .OnSurfaceVariant )
272279 Text (" $proxyHost :$proxyPort " , style = MaterialTheme .typography.bodySmall, color = MdvColor .OnSurface , fontWeight = FontWeight .Bold )
273280 }
274281 if (socksAuthEnabled && socksUser.isNotBlank()) {
282+ androidx.compose.foundation.layout.Spacer (modifier = Modifier .height(4 .dp))
275283 Row (modifier = Modifier .fillMaxWidth(), horizontalArrangement = Arrangement .SpaceBetween ) {
276284 Text (" SOCKS5 Auth" , style = MaterialTheme .typography.bodySmall, color = MdvColor .OnSurfaceVariant )
277- Text (" Enabled ($socksUser )" , style = MaterialTheme .typography.bodySmall, color = MdvColor .OnSurface , fontWeight = FontWeight .Bold )
285+ Text (" Enabled ($socksUser : $socksPass )" , style = MaterialTheme .typography.bodySmall, color = MdvColor .OnSurface , fontWeight = FontWeight .Bold )
278286 }
279287 }
280288 }
0 commit comments