diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/RelaySetupInfo.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/RelaySetupInfo.kt index 1f11bff544..d5e21d43b6 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/RelaySetupInfo.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/RelaySetupInfo.kt @@ -7,8 +7,8 @@ data class RelaySetupInfo( val read: Boolean, val write: Boolean, val errorCount: Int = 0, - val downloadCount: Int = 0, - val uploadCount: Int = 0, + val downloadCountInBytes: Int = 0, + val uploadCountInBytes: Int = 0, val spamCount: Int = 0, val feedTypes: Set ) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt index 111bbc9bb1..39e22d39f1 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt @@ -31,9 +31,10 @@ class Relay( private var socket: WebSocket? = null private var isReady: Boolean = false - var eventDownloadCounter = 0 + var eventDownloadCounterInBytes = 0 + var eventUploadCounterInBytes = 0 + var spamCounter = 0 - var eventUploadCounter = 0 var errorCounter = 0 var ping: Long? = null @@ -89,7 +90,7 @@ class Relay( when (type) { "EVENT" -> { // Log.w("Relay", "Relay onEVENT $url, $channel") - eventDownloadCounter++ + eventDownloadCounterInBytes += text.bytesUsedInMemory() val event = Event.fromJson(msg[2], Client.lenient) listeners.forEach { it.onEvent(this@Relay, channel, event) } } @@ -185,6 +186,7 @@ class Relay( """["REQ","$requestId",${filters.take(10).joinToString(",") { it.filter.toJson() }}]""" // println("FILTERSSENT ${url} ${request}") socket?.send(request) + eventUploadCounterInBytes += request.bytesUsedInMemory() } } } else { @@ -209,8 +211,9 @@ class Relay( fun send(signedEvent: EventInterface) { if (write) { - socket?.send("""["EVENT",${signedEvent.toJson()}]""") - eventUploadCounter++ + val event = """["EVENT",${signedEvent.toJson()}]""" + socket?.send(event) + eventUploadCounterInBytes += event.bytesUsedInMemory() } } @@ -257,3 +260,7 @@ class Relay( fun onRelayStateChange(relay: Relay, type: Type, channel: String?) } } + +fun String.bytesUsedInMemory(): Int { + return (8 * ((((this.length) * 2) + 45) / 8)) +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListView.kt index ba64aa835f..fb79ef074c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListView.kt @@ -150,27 +150,27 @@ fun ServerConfigHeader() { Column(Modifier.weight(1.4f)) { Row(verticalAlignment = Alignment.CenterVertically) { - Spacer(modifier = Modifier.size(25.dp)) + Spacer(modifier = Modifier.size(30.dp)) Text( - text = stringResource(R.string.posts), + text = stringResource(R.string.bytes), maxLines = 1, fontSize = 14.sp, - modifier = Modifier.weight(1f), + modifier = Modifier.weight(1.2f), color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) ) - Spacer(modifier = Modifier.size(10.dp)) + Spacer(modifier = Modifier.size(5.dp)) Text( - text = stringResource(id = R.string.posts), + text = stringResource(id = R.string.bytes), maxLines = 1, fontSize = 14.sp, - modifier = Modifier.weight(1f), + modifier = Modifier.weight(1.2f), color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) ) - Spacer(modifier = Modifier.size(10.dp)) + Spacer(modifier = Modifier.size(5.dp)) Text( text = stringResource(R.string.errors), @@ -371,10 +371,10 @@ fun ServerConfig( } Text( - text = "${countToHumanReadable(item.downloadCount)}", + text = "${countToHumanReadable(item.downloadCountInBytes)}", maxLines = 1, - fontSize = 14.sp, - modifier = Modifier.weight(1f), + fontSize = 12.sp, + modifier = Modifier.weight(1.2f), color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) ) @@ -399,10 +399,10 @@ fun ServerConfig( } Text( - text = "${countToHumanReadable(item.uploadCount)}", + text = "${countToHumanReadable(item.uploadCountInBytes)}", maxLines = 1, - fontSize = 14.sp, - modifier = Modifier.weight(1f), + fontSize = 12.sp, + modifier = Modifier.weight(1.2f), color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) ) @@ -418,7 +418,7 @@ fun ServerConfig( Text( text = "${countToHumanReadable(item.errorCount)}", maxLines = 1, - fontSize = 14.sp, + fontSize = 12.sp, modifier = Modifier.weight(1f), color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) ) @@ -433,7 +433,7 @@ fun ServerConfig( Text( text = "${countToHumanReadable(item.spamCount)}", maxLines = 1, - fontSize = 14.sp, + fontSize = 12.sp, modifier = Modifier.weight(1f), color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) ) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListViewModel.kt index cafe4d2009..70ce25a38f 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListViewModel.kt @@ -49,23 +49,23 @@ class NewRelayListViewModel : ViewModel() { val localInfoFeedTypes = account.localRelays.filter { localRelay -> localRelay.url == it.key }.firstOrNull()?.feedTypes ?: FeedType.values().toSet() val errorCounter = liveRelay?.errorCounter ?: 0 - val eventDownloadCounter = liveRelay?.eventDownloadCounter ?: 0 - val eventUploadCounter = liveRelay?.eventUploadCounter ?: 0 + val eventDownloadCounter = liveRelay?.eventDownloadCounterInBytes ?: 0 + val eventUploadCounter = liveRelay?.eventUploadCounterInBytes ?: 0 val spamCounter = liveRelay?.spamCounter ?: 0 RelaySetupInfo(it.key, it.value.read, it.value.write, errorCounter, eventDownloadCounter, eventUploadCounter, spamCounter, localInfoFeedTypes) - }.sortedBy { it.downloadCount }.reversed() + }.sortedBy { it.downloadCountInBytes }.reversed() } else { account.localRelays.map { val liveRelay = RelayPool.getRelay(it.url) val errorCounter = liveRelay?.errorCounter ?: 0 - val eventDownloadCounter = liveRelay?.eventDownloadCounter ?: 0 - val eventUploadCounter = liveRelay?.eventUploadCounter ?: 0 + val eventDownloadCounter = liveRelay?.eventDownloadCounterInBytes ?: 0 + val eventUploadCounter = liveRelay?.eventUploadCounterInBytes ?: 0 val spamCounter = liveRelay?.spamCounter ?: 0 RelaySetupInfo(it.url, it.read, it.write, errorCounter, eventDownloadCounter, eventUploadCounter, spamCounter, it.feedTypes) - }.sortedBy { it.downloadCount }.reversed() + }.sortedBy { it.downloadCountInBytes }.reversed() } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 901085b1f2..eb30c0bdcf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -74,6 +74,7 @@ Failed to upload the image Relay Address Posts + Bytes Errors Home Feed Private Message Feed