Dispose для EncryptedStorage, скрытые системные файлы для LocalStorage
This commit is contained in:
@@ -47,9 +47,6 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Timber
|
||||
implementation(libs.timber)
|
||||
|
||||
implementation(libs.navigation)
|
||||
implementation(libs.navigation.hilt.compose)
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.github.nullptroma.wallenc.presentation.extensions
|
||||
|
||||
import com.github.nullptroma.wallenc.domain.interfaces.IStorageInfo
|
||||
|
||||
fun IStorageInfo.toPrintable(): String {
|
||||
return "{ uuid: $uuid, enc: ${encInfo.value} }"
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.github.nullptroma.wallenc.presentation.screens.main.screens.local.vault
|
||||
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.gestures.detectTapGestures
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
@@ -39,19 +40,21 @@ fun LocalVaultScreen(modifier: Modifier = Modifier,
|
||||
}) { innerPadding ->
|
||||
LazyColumn(modifier = Modifier.padding(innerPadding)) {
|
||||
items(uiState.storagesList) {
|
||||
Card(modifier = Modifier.pointerInput(Unit) {
|
||||
Card(modifier = Modifier.clickable { }.pointerInput(Unit) {
|
||||
detectTapGestures(
|
||||
onTap = { _ -> viewModel.printAllFilesToLog(it) }
|
||||
onTap = { _ -> viewModel.printStorageInfoToLog(it) }
|
||||
)
|
||||
}) {
|
||||
val available by it.isAvailable.collectAsStateWithLifecycle()
|
||||
val numOfFiles by it.numberOfFiles.collectAsStateWithLifecycle()
|
||||
val size by it.size.collectAsStateWithLifecycle()
|
||||
val enc by it.encInfo.collectAsStateWithLifecycle()
|
||||
Column {
|
||||
Text(it.uuid.toString())
|
||||
Text("IsAvailable: $available")
|
||||
Text("Files: $numOfFiles")
|
||||
Text("Size: $size")
|
||||
Text("Enc: $enc")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,13 +3,14 @@ package com.github.nullptroma.wallenc.presentation.screens.main.screens.local.va
|
||||
import androidx.lifecycle.viewModelScope
|
||||
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.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.launch
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
import kotlin.system.measureTimeMillis
|
||||
|
||||
@@ -17,6 +18,7 @@ import kotlin.system.measureTimeMillis
|
||||
class LocalVaultViewModel @Inject constructor(
|
||||
private val _manageLocalVaultUseCase: ManageLocalVaultUseCase,
|
||||
private val _storageFileManagementUseCase: StorageFileManagementUseCase,
|
||||
private val logger: ILogger
|
||||
) :
|
||||
ViewModelBase<LocalVaultScreenState>(LocalVaultScreenState(listOf())) {
|
||||
init {
|
||||
@@ -30,7 +32,7 @@ class LocalVaultViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun printAllFilesToLog(storage: IStorageInfo) {
|
||||
fun printStorageInfoToLog(storage: IStorageInfo) {
|
||||
_storageFileManagementUseCase.setStorage(storage)
|
||||
viewModelScope.launch {
|
||||
val files: List<IFile>
|
||||
@@ -40,14 +42,13 @@ class LocalVaultViewModel @Inject constructor(
|
||||
dirs = _storageFileManagementUseCase.getAllDirs()
|
||||
}
|
||||
for (file in files) {
|
||||
Timber.tag("Files")
|
||||
Timber.d(file.metaInfo.toString())
|
||||
logger.debug("Files", file.metaInfo.toString())
|
||||
}
|
||||
for (dir in dirs) {
|
||||
Timber.tag("Dirs")
|
||||
Timber.d(dir.metaInfo.toString())
|
||||
logger.debug("Dirs", dir.metaInfo.toString())
|
||||
}
|
||||
Timber.d("Time: $time ms")
|
||||
logger.debug("Time", "Time: $time ms")
|
||||
logger.debug("Storage", storage.toPrintable())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,15 +4,10 @@ package com.github.nullptroma.wallenc.presentation.viewmodel
|
||||
import androidx.lifecycle.ViewModel
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import timber.log.Timber
|
||||
|
||||
abstract class ViewModelBase<TState>(initState: TState) : ViewModel() {
|
||||
private val _state = MutableStateFlow<TState>(initState)
|
||||
|
||||
init {
|
||||
Timber.d("Init ViewModel ${this.javaClass.name}")
|
||||
}
|
||||
|
||||
val state: StateFlow<TState>
|
||||
get() = _state
|
||||
|
||||
|
||||
Reference in New Issue
Block a user