Реализован UnlockManager

This commit is contained in:
2025-01-18 21:24:41 +03:00
parent c5c0173391
commit b9e73cf197
25 changed files with 598 additions and 91 deletions

View File

@@ -1,15 +1,20 @@
package com.github.nullptroma.wallenc.presentation.screens.main.screens.local.vault
import androidx.lifecycle.viewModelScope
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
import com.github.nullptroma.wallenc.domain.interfaces.IDirectory
import com.github.nullptroma.wallenc.domain.interfaces.IFile
import com.github.nullptroma.wallenc.domain.interfaces.ILogger
import com.github.nullptroma.wallenc.domain.interfaces.IStorageInfo
import com.github.nullptroma.wallenc.domain.usecases.GetOpenedStoragesUseCase
import com.github.nullptroma.wallenc.domain.usecases.ManageLocalVaultUseCase
import com.github.nullptroma.wallenc.domain.usecases.StorageFileManagementUseCase
import com.github.nullptroma.wallenc.presentation.extensions.toPrintable
import com.github.nullptroma.wallenc.presentation.viewmodel.ViewModelBase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.launch
import javax.inject.Inject
import kotlin.system.measureTimeMillis
@@ -17,13 +22,16 @@ import kotlin.system.measureTimeMillis
@HiltViewModel
class LocalVaultViewModel @Inject constructor(
private val _manageLocalVaultUseCase: ManageLocalVaultUseCase,
private val _getOpenedStoragesUseCase: GetOpenedStoragesUseCase,
private val _storageFileManagementUseCase: StorageFileManagementUseCase,
private val logger: ILogger
) :
ViewModelBase<LocalVaultScreenState>(LocalVaultScreenState(listOf())) {
init {
viewModelScope.launch {
_manageLocalVaultUseCase.localStorages.collect {
_manageLocalVaultUseCase.localStorages.combine(_getOpenedStoragesUseCase.openedStorages) { local, opened ->
local + (opened?.map { it.value } ?: listOf())
}.collectLatest {
val newState = state.value.copy(
storagesList = it
)
@@ -54,7 +62,7 @@ class LocalVaultViewModel @Inject constructor(
fun createStorage() {
viewModelScope.launch {
_manageLocalVaultUseCase.createStorage()
_manageLocalVaultUseCase.createStorage(EncryptKey("hello"))
}
}
}