Coverage Summary for Class: SendScreenViewModel (debug.com.greybox.projectmesh.viewModel)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| SendScreenViewModel$1 |
0%
(0/1)
|
0%
(0/2)
|
0%
(0/2)
|
0%
(0/34)
|
| SendScreenViewModel$1$1 |
0%
(0/1)
|
|
| SendScreenViewModel$onDelete$1 |
0%
(0/1)
|
0%
(0/1)
|
0%
(0/2)
|
0%
(0/18)
|
| SendScreenViewModel$special$$inlined$instance$default$1 |
0%
(0/1)
|
|
| Total |
0%
(0/7)
|
0%
(0/3)
|
0%
(0/4)
|
0%
(0/52)
|
package com.greybox.projectmesh.viewModel
import android.net.Uri
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.greybox.projectmesh.server.AppServer
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import org.kodein.di.DI
import org.kodein.di.instance
data class SendScreenModel(
val outgoingTransfers: List<AppServer.OutgoingTransferInfo> = emptyList()
)
class SendScreenViewModel(
di: DI,
savedStateHandle: SavedStateHandle,
private val onSwitchToSelectDestNode: (List<Uri>) -> Unit
): ViewModel() {
// _uiState will be updated whenever there is a change in the UI state
private val _uiState = MutableStateFlow(SendScreenModel())
// uiState is a read-only property that shows the current UI state
val uiState: Flow<SendScreenModel> = _uiState.asStateFlow()
private val appServer: AppServer by di.instance()
init {
viewModelScope.launch{
appServer.outgoingTransfers.collect{
_uiState.update { prev ->
prev.copy(
outgoingTransfers = it
)
}
}
}
}
fun onFileChosen(uris: List<Uri>){//Can we copy this to the Chat screen model?
onSwitchToSelectDestNode(uris)
}
fun onDelete(transfer: AppServer.OutgoingTransferInfo){
viewModelScope.launch {
appServer.removeOutgoingTransfer(transfer.id)
}
}
}