Coverage Summary for Class: SelectDestNodeScreenKt (debug.com.greybox.projectmesh.views)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| SelectDestNodeScreenKt$DisplayAllNodesToSelect$1 |
0%
(0/1)
|
|
| SelectDestNodeScreenKt$DisplayAllNodesToSelect$1$1 |
0%
(0/1)
|
|
| SelectDestNodeScreenKt$DisplayAllNodesToSelect$1$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/2)
|
| SelectDestNodeScreenKt$DisplayAllNodesToSelect$1$3$1 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/7)
|
| SelectDestNodeScreenKt$DisplayAllNodesToSelect$1$invoke$$inlined$items$default$1 |
0%
(0/1)
|
|
| SelectDestNodeScreenKt$DisplayAllNodesToSelect$1$invoke$$inlined$items$default$2 |
0%
(0/1)
|
|
| SelectDestNodeScreenKt$DisplayAllNodesToSelect$1$invoke$$inlined$items$default$3 |
0%
(0/1)
|
|
| SelectDestNodeScreenKt$DisplayAllNodesToSelect$1$invoke$$inlined$items$default$4 |
0%
(0/1)
|
|
| SelectDestNodeScreenKt$DisplayAllNodesToSelect$2 |
|
| SelectDestNodeScreenKt$SelectDestNodeScreen$1 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/9)
|
| SelectDestNodeScreenKt$SelectDestNodeScreen$3 |
|
| Total |
0%
(0/12)
|
|
0%
(0/3)
|
0%
(0/18)
|
package com.greybox.projectmesh.views
import android.net.Uri
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalSavedStateRegistryOwner
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.greybox.projectmesh.ViewModelFactory
import com.greybox.projectmesh.viewModel.PingScreenViewModel
import com.greybox.projectmesh.viewModel.SelectDestNodeScreenModel
import com.greybox.projectmesh.viewModel.SelectDestNodeScreenViewModel
import org.kodein.di.compose.localDI
import com.greybox.projectmesh.extension.WifiListItem
@Composable
fun SelectDestNodeScreen(
uris: List<Uri>,
popBackWhenDone: () -> Unit,
viewModel: SelectDestNodeScreenViewModel = viewModel(
factory = ViewModelFactory(
di = localDI(),
owner = LocalSavedStateRegistryOwner.current,
vmFactory = { di, savedStateHandle -> SelectDestNodeScreenViewModel(di, savedStateHandle, uris, popBackWhenDone) },
defaultArgs = null,
)
)
) {
val uiState by viewModel.uiState.collectAsState(SelectDestNodeScreenModel())
DisplayAllNodesToSelect(
uiState = uiState,
onClickReceiver = viewModel::onClickReceiver,
)
}
@Composable
fun DisplayAllNodesToSelect(
uiState: SelectDestNodeScreenModel,
onClickReceiver: (Int) -> Unit,
) {
val inProgressDevice = uiState.contactingInProgressDevice
LazyColumn(
modifier = Modifier.fillMaxSize()
){
if(inProgressDevice != null) {
item("inprogress") {
Column(
modifier = Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally,
) {
CircularProgressIndicator(
modifier = Modifier.padding(vertical = 8.dp),
)
Text(
modifier = Modifier.padding(vertical = 8.dp),
text = "Contacting $inProgressDevice\nThis might take a few seconds.",
)
}
}
}
else{
items(
items = uiState.allNodes.entries.toList(),
key = {it.key}
){ entry ->
WifiListItem(
wifiAddress = entry.key,
wifiEntry = entry.value,
onClick = {
onClickReceiver(entry.key)
}
)
}
}
}
}