Локальное хранилище теперь читает файлы и создаёт .wallenc-meta

This commit is contained in:
Пытков Роман
2024-12-21 22:45:02 +03:00
parent cf443487ee
commit 577939e953
18 changed files with 324 additions and 102 deletions

View File

@@ -4,7 +4,7 @@ plugins {
alias(libs.plugins.compose.compiler)
alias(libs.plugins.dagger.hilt)
alias(libs.plugins.jetbrains.kotlin.serialization)
id("kotlin-parcelize")
alias(libs.plugins.kotlin.parcelize)
alias(libs.plugins.ksp)
}

View File

@@ -1,5 +1,6 @@
package com.github.nullptroma.wallenc.presentation.screens.main.screens.local.vault
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
@@ -7,6 +8,7 @@ import androidx.compose.material3.Card
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.hilt.navigation.compose.hiltViewModel
@@ -20,12 +22,17 @@ fun LocalVaultScreen(modifier: Modifier = Modifier,
val uiState by viewModel.state.collectAsStateWithLifecycle()
LazyColumn(modifier = modifier) {
items(uiState.storagesList) {
Card {
Card(modifier = Modifier.clickable {
viewModel.printAllFilesToLog(it)
}) {
val available = it.isAvailable.collectAsStateWithLifecycle()
val numOfFiles = it.isAvailable.collectAsStateWithLifecycle()
val size = it.isAvailable.collectAsStateWithLifecycle()
Column {
Text(it.uuid.toString())
Text("IsAvailable: ${it.isAvailable.value}")
Text("Files: ${it.numberOfFiles.value}")
Text("Size: ${it.size.value}")
Text("IsAvailable: $available")
Text("Files: $numOfFiles")
Text("Size: $size")
}
}
}

View File

@@ -1,18 +1,24 @@
package com.github.nullptroma.wallenc.presentation.screens.main.screens.local.vault
import androidx.lifecycle.viewModelScope
import com.github.nullptroma.wallenc.domain.models.IStorage
import com.github.nullptroma.wallenc.domain.usecases.GetAllRawStoragesUseCase
import com.github.nullptroma.wallenc.domain.usecases.StorageFileManagementUseCase
import com.github.nullptroma.wallenc.presentation.viewmodel.ViewModelBase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import timber.log.Timber
import javax.inject.Inject
@HiltViewModel
class LocalVaultViewModel @Inject constructor(private val getAllRawStoragesUseCase: GetAllRawStoragesUseCase) :
class LocalVaultViewModel @Inject constructor(
private val _getAllRawStoragesUseCase: GetAllRawStoragesUseCase,
private val _storageFileManagementUseCase: StorageFileManagementUseCase
) :
ViewModelBase<LocalVaultScreenState>(LocalVaultScreenState(listOf())) {
init {
viewModelScope.launch {
getAllRawStoragesUseCase.localStorage.storages.collect {
_getAllRawStoragesUseCase.localStorage.storages.collect {
val newState = state.value.copy(
storagesList = it
)
@@ -20,4 +26,15 @@ class LocalVaultViewModel @Inject constructor(private val getAllRawStoragesUseCa
}
}
}
fun printAllFilesToLog(storage: IStorage) {
_storageFileManagementUseCase.setStorage(storage)
viewModelScope.launch {
val files = _storageFileManagementUseCase.getAllFiles()
for (file in files) {
Timber.tag("File")
Timber.d(file.metaInfo.toString())
}
}
}
}