change(tracker): send percent of removed nodes instead of int

This commit is contained in:
nick-delirium 2023-03-10 11:49:53 +01:00 committed by Delirium
parent f9872f5965
commit a34d557f7f
4 changed files with 11 additions and 7 deletions

View file

@ -653,8 +653,8 @@ class MessageCodec(Codec):
)
if message_id == 115:
return RemovedNodesCount(
nodes_count=self.read_uint(reader)
return UnbindNodes(
total_removed_percent=self.read_uint(reader)
)
if message_id == 125:

View file

@ -448,7 +448,6 @@ end
# 90-111 reserved iOS
message 112, 'InputChange', :replayer => false do
uint 'ID'
string 'Value'
@ -468,8 +467,8 @@ message 114, 'MouseThrashing' do
uint 'Timestamp'
end
message 115, 'RemovedNodesCount', :replayer => false do
uint 'NodesCount'
message 115, 'UnbindNodes', :replayer => false do
uint 'TotalRemovedPercent'
end
## Backend-only

View file

@ -73,6 +73,10 @@ export default class Nodes {
return this.nodes[id]
}
getNodeCount() {
return this.nodes.filter(Boolean).length
}
clear(): void {
for (let id = 0; id < this.nodes.length; id++) {
const node = this.nodes[id]

View file

@ -8,7 +8,7 @@ import {
CreateElementNode,
MoveNode,
RemoveNode,
RemovedNodesCount,
UnbindNodes,
} from '../messages.gen.js'
import App from '../index.js'
import {
@ -237,11 +237,12 @@ export default abstract class Observer {
)
let removed = 0
const total = this.app.nodes.getNodeCount()
while (walker.nextNode()) {
removed += 1
this.app.nodes.unregisterNode(walker.currentNode)
}
this.app.send(RemovedNodesCount(removed))
this.app.send(UnbindNodes(Math.floor((removed / total) * 100)))
}
}