Coverage Summary for Class: NetworkScreenKt (debug.com.greybox.projectmesh.views)

Class Method, % Branch, % Line, % Instruction, %
NetworkScreenKt$NetworkScreen$$inlined$instance$default$1 0% (0/1)
NetworkScreenKt$NetworkScreen$1 0% (0/1) 0% (0/1) 0% (0/5)
NetworkScreenKt$NetworkScreen$2 0% (0/1)
NetworkScreenKt$NetworkScreen$2$1 0% (0/1) 0% (0/1) 0% (0/2)
NetworkScreenKt$NetworkScreen$2$2$1 0% (0/1) 0% (0/4) 0% (0/26)
NetworkScreenKt$NetworkScreen$2$invoke$$inlined$items$default$1 0% (0/1)
NetworkScreenKt$NetworkScreen$2$invoke$$inlined$items$default$2 0% (0/1)
NetworkScreenKt$NetworkScreen$2$invoke$$inlined$items$default$3 0% (0/1)
NetworkScreenKt$NetworkScreen$2$invoke$$inlined$items$default$4 0% (0/1)
NetworkScreenKt$NetworkScreen$3
Total 0% (0/11) 0% (0/6) 0% (0/33)


 package com.greybox.projectmesh.views
 
 
 import androidx.compose.foundation.lazy.LazyColumn
 import androidx.compose.foundation.lazy.items
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.collectAsState
 import androidx.compose.runtime.getValue
 import androidx.compose.ui.platform.LocalSavedStateRegistryOwner
 import androidx.lifecycle.viewmodel.compose.viewModel
 import com.greybox.projectmesh.ViewModelFactory
 import com.greybox.projectmesh.viewModel.HomeScreenViewModel
 import com.greybox.projectmesh.viewModel.NetworkScreenModel
 import com.greybox.projectmesh.viewModel.NetworkScreenViewModel
 import org.kodein.di.compose.localDI
 import com.greybox.projectmesh.extension.WifiListItem
 import com.greybox.projectmesh.server.AppServer
 import java.net.InetAddress
 import org.kodein.di.instance
 
 @Composable
 fun NetworkScreen(
     onNodeClick: (String) -> Unit,
     viewModel: NetworkScreenViewModel = viewModel(
     factory = ViewModelFactory(
         di = localDI(),
         owner = LocalSavedStateRegistryOwner.current,
         vmFactory = { di, savedStateHandle -> NetworkScreenViewModel(di, savedStateHandle)},
         defaultArgs = null))
 ) {
     // declare the UI state, we can use the uiState to access the current state of the viewModel
     val uiState: NetworkScreenModel by viewModel.uiState.collectAsState(initial = NetworkScreenModel())
     val di = localDI()
     val appServer: AppServer by di.instance()
 
     // display all the connected station
     LazyColumn{
         items(
             items = uiState.allNodes.entries.toList(),
             key = {it.key}
         ){ eachItem ->
             WifiListItem(
                 wifiAddress = eachItem.key,
                 wifiEntry = eachItem.value,
                 onClick = { ipAddress ->
                     //request user info when clicking
                     val addr = InetAddress.getByName(ipAddress)
                     appServer.requestRemoteUserInfo(addr)
                     appServer.pushUserInfoTo(addr)
 
                     //Navigate to Ping Screen
                     onNodeClick(ipAddress)
                 }
             )
         }
     }
 }