diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/main/MainViewModel.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/main/MainViewModel.kt index 89b0cf0e..0704f781 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/main/MainViewModel.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/main/MainViewModel.kt @@ -689,11 +689,17 @@ class MainViewModel( dataSource.cancelAllPing() val groupId = uiState.value.selectedGroupId val servers = currentServers() - dataSource.clearAllTestDelayResults(servers.map { it.guid }) if (servers.isEmpty()) { _uiState.update { it.copy(isTesting = false) } return } + val serverGuids = servers.map { it.guid } + mutableServersForGroup(groupId).update { current -> + current.map { server -> + if (server.testDelayMillis == 0L) server + else server.copy(testDelayMillis = 0L) + } + } testingGroupId = groupId _uiState.update { it.copy( @@ -702,12 +708,13 @@ class MainViewModel( ) } viewModelScope.launch(ioDispatcher) { + dataSource.clearAllTestDelayResults(serverGuids) cacheMutex.withLock { groupDataCache.remove(groupId) } dataSource.sendMsg2TestService( TestServiceMessage( key = AppConfig.MSG_MEASURE_CONFIG_START, subscriptionId = groupId, - serverGuids = if (keywordFilter.isNotEmpty()) servers.map { it.guid } else emptyList(), + serverGuids = if (keywordFilter.isNotEmpty()) serverGuids else emptyList(), onlyTcp = onlyTcp ) )