Более аккуратная обработка сетвой ошибки на экране Vault
This commit is contained in:
@@ -115,22 +115,24 @@ class EncryptedStorageAccessor(
|
|||||||
|
|
||||||
launch {
|
launch {
|
||||||
source.numberOfFiles.collect {
|
source.numberOfFiles.collect {
|
||||||
if(it == null)
|
if (it == null) {
|
||||||
_numberOfFiles.value = null
|
_numberOfFiles.value = null
|
||||||
else
|
} else {
|
||||||
{
|
val hiddenCount = runCatching { getSystemFiles().size }.getOrNull() ?: return@collect
|
||||||
_numberOfFiles.value = it - getSystemFiles().size
|
_numberOfFiles.value = it - hiddenCount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
launch {
|
launch {
|
||||||
source.size.collect { sourceSize ->
|
source.size.collect { sourceSize ->
|
||||||
if(sourceSize == null)
|
if (sourceSize == null) {
|
||||||
_size.value = null
|
_size.value = null
|
||||||
else
|
} else {
|
||||||
{
|
val hiddenBytes = runCatching {
|
||||||
_size.value = sourceSize - getSystemFiles().sumOf { it.metaInfo.size }
|
getSystemFiles().sumOf { file -> file.metaInfo.size }
|
||||||
|
}.getOrNull() ?: return@collect
|
||||||
|
_size.value = sourceSize - hiddenBytes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import androidx.lifecycle.viewModelScope
|
|||||||
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
|
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
|
||||||
import com.github.nullptroma.wallenc.domain.datatypes.StorageMetaLoadState
|
import com.github.nullptroma.wallenc.domain.datatypes.StorageMetaLoadState
|
||||||
import com.github.nullptroma.wallenc.domain.datatypes.Tree
|
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.errors.toWallencException
|
||||||
import com.github.nullptroma.wallenc.domain.interfaces.ILogger
|
import com.github.nullptroma.wallenc.domain.interfaces.ILogger
|
||||||
import com.github.nullptroma.wallenc.domain.interfaces.IStorage
|
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))
|
ctx.log(TaskLogLevel.Info, uiStrings(R.string.task_log_rescanning_vault_storages))
|
||||||
manageVaultUseCase.rescanStorages(vaultUuid)
|
manageVaultUseCase.rescanStorages(vaultUuid)
|
||||||
ctx.log(TaskLogLevel.Info, uiStrings(R.string.task_log_rescan_vault_storages_done))
|
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) {
|
} catch (e: Exception) {
|
||||||
logger.debug(TAG, "rescanStorages failed: ${e.stackTraceToString()}")
|
logger.debug(TAG, "rescanStorages failed: ${e.stackTraceToString()}")
|
||||||
ctx.log(TaskLogLevel.Error, uiStrings(R.string.task_log_rescan_vault_storages_failed))
|
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) {
|
} catch (e: Exception) {
|
||||||
logger.debug(TAG, "createStorage failed: ${e.stackTraceToString()}")
|
logger.debug(TAG, "createStorage failed: ${e.stackTraceToString()}")
|
||||||
ctx.log(TaskLogLevel.Error, uiStrings(R.string.task_log_add_vault_failed))
|
ctx.log(TaskLogLevel.Error, uiStrings(R.string.task_log_add_vault_failed))
|
||||||
throw e
|
emitTaskError(e)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user