From 96e9de49c3186328d64d9b72d7db96a636fe5d6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D1=8B=D1=82=D0=BA=D0=BE=D0=B2=20=D0=A0=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD?= Date: Fri, 22 May 2026 13:33:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=BE=D0=BB=D0=B5=D0=B5=20=D0=B0=D0=BA?= =?UTF-8?q?=D0=BA=D1=83=D1=80=D0=B0=D1=82=D0=BD=D0=B0=D1=8F=20=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B0=20=D1=81=D0=B5=D1=82?= =?UTF-8?q?=D0=B2=D0=BE=D0=B9=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=D0=B5=20Vault?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../encrypt/EncryptedStorageAccessor.kt | 18 ++++++++++-------- .../vault/AbstractVaultBrowserViewModel.kt | 8 +++++++- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/domain-vault/src/main/java/com/github/nullptroma/wallenc/domain/vault/storages/encrypt/EncryptedStorageAccessor.kt b/domain-vault/src/main/java/com/github/nullptroma/wallenc/domain/vault/storages/encrypt/EncryptedStorageAccessor.kt index 2bb63ac..82deb21 100644 --- a/domain-vault/src/main/java/com/github/nullptroma/wallenc/domain/vault/storages/encrypt/EncryptedStorageAccessor.kt +++ b/domain-vault/src/main/java/com/github/nullptroma/wallenc/domain/vault/storages/encrypt/EncryptedStorageAccessor.kt @@ -115,22 +115,24 @@ class EncryptedStorageAccessor( launch { source.numberOfFiles.collect { - if(it == null) + if (it == null) { _numberOfFiles.value = null - else - { - _numberOfFiles.value = it - getSystemFiles().size + } else { + val hiddenCount = runCatching { getSystemFiles().size }.getOrNull() ?: return@collect + _numberOfFiles.value = it - hiddenCount } } } launch { source.size.collect { sourceSize -> - if(sourceSize == null) + if (sourceSize == null) { _size.value = null - else - { - _size.value = sourceSize - getSystemFiles().sumOf { it.metaInfo.size } + } else { + val hiddenBytes = runCatching { + getSystemFiles().sumOf { file -> file.metaInfo.size } + }.getOrNull() ?: return@collect + _size.value = sourceSize - hiddenBytes } } } diff --git a/ui/src/main/java/com/github/nullptroma/wallenc/ui/screens/main/screens/vault/AbstractVaultBrowserViewModel.kt b/ui/src/main/java/com/github/nullptroma/wallenc/ui/screens/main/screens/vault/AbstractVaultBrowserViewModel.kt index a45b7e1..f926324 100644 --- a/ui/src/main/java/com/github/nullptroma/wallenc/ui/screens/main/screens/vault/AbstractVaultBrowserViewModel.kt +++ b/ui/src/main/java/com/github/nullptroma/wallenc/ui/screens/main/screens/vault/AbstractVaultBrowserViewModel.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.viewModelScope import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey import com.github.nullptroma.wallenc.domain.datatypes.StorageMetaLoadState import com.github.nullptroma.wallenc.domain.datatypes.Tree +import com.github.nullptroma.wallenc.domain.errors.WallencException import com.github.nullptroma.wallenc.domain.errors.toWallencException import com.github.nullptroma.wallenc.domain.interfaces.ILogger import com.github.nullptroma.wallenc.domain.interfaces.IStorage @@ -188,9 +189,14 @@ abstract class AbstractVaultBrowserViewModel( ctx.log(TaskLogLevel.Info, uiStrings(R.string.task_log_rescanning_vault_storages)) manageVaultUseCase.rescanStorages(vaultUuid) ctx.log(TaskLogLevel.Info, uiStrings(R.string.task_log_rescan_vault_storages_done)) + val vault = manageVaultUseCase.find(vaultUuid) + if (vault != null && !vault.isAvailable.value) { + emitTaskError(WallencException.Network.IoFailed()) + } } catch (e: Exception) { logger.debug(TAG, "rescanStorages failed: ${e.stackTraceToString()}") ctx.log(TaskLogLevel.Error, uiStrings(R.string.task_log_rescan_vault_storages_failed)) + emitTaskError(e) } }, ) @@ -224,7 +230,7 @@ abstract class AbstractVaultBrowserViewModel( } catch (e: Exception) { logger.debug(TAG, "createStorage failed: ${e.stackTraceToString()}") ctx.log(TaskLogLevel.Error, uiStrings(R.string.task_log_add_vault_failed)) - throw e + emitTaskError(e) } }, )