Skip to content

Commit

Permalink
Only expose non mutable flow
Browse files Browse the repository at this point in the history
  • Loading branch information
LunarX committed Oct 7, 2024
1 parent 5458490 commit dc35385
Showing 1 changed file with 9 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,28 @@ import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import javax.inject.Inject

@HiltViewModel
class NewTransferViewModel @Inject constructor(private val transferFileUtils: TransferFileUtils) : ViewModel() {

val transferFiles = MutableStateFlow<List<TransferFile>>(emptyList())
val failedTransferFileCount = MutableSharedFlow<Int>()
private val _transferFiles = MutableStateFlow<List<TransferFile>>(emptyList())
val transferFiles: StateFlow<List<TransferFile>> = _transferFiles

private val _failedTransferFileCount = MutableSharedFlow<Int>()
val failedTransferFileCount: SharedFlow<Int> = _failedTransferFileCount

fun addFiles(uris: List<Uri>) {
viewModelScope.launch {
val alreadyUsedFileNames = buildSet { transferFiles.value.forEach { add(it.fileName) } }

val newTransferFiles = transferFileUtils.getTransferFiles(uris, alreadyUsedFileNames)

transferFiles.value += newTransferFiles
failedTransferFileCount.emit(uris.count() - newTransferFiles.count())
_transferFiles.value += newTransferFiles
_failedTransferFileCount.emit(uris.count() - newTransferFiles.count())
}
}
}

0 comments on commit dc35385

Please sign in to comment.