Skip to content

Commit 990d173

Browse files
committed
fix(ui): resolve layout spacing issue during reconnect and show socks password
1 parent 0ef5f72 commit 990d173

1 file changed

Lines changed: 17 additions & 9 deletions

File tree

android/app/src/main/java/com/masterdns/vpn/ui/home/HomeStatusCards.kt

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)