display images thumbnail

This commit is contained in:
m
2026-09-15 10:27:52 +02:00
parent 194fd26693
commit 3499a3e356
5 changed files with 16 additions and 5 deletions
@@ -10,6 +10,7 @@ import com.vaultdrop.mobile.data.local.entity.FileEntity
import com.vaultdrop.mobile.data.local.entity.FileStatus
import com.vaultdrop.mobile.data.repository.FileRepository
import com.vaultdrop.mobile.data.repository.OutboxRepository
import com.vaultdrop.mobile.features.thumbnails.ThumbnailStore
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -33,6 +34,7 @@ class FileDeleter @Inject constructor(
private val fileRepository: FileRepository,
private val outboxRepository: OutboxRepository,
private val appDatabase: AppDatabase,
private val thumbnailStore: ThumbnailStore,
) {
private val resolver: ContentResolver get() = context.contentResolver
@@ -68,6 +70,7 @@ class FileDeleter @Inject constructor(
}.onSuccess { deleted ->
if (deleted) {
fileRepository.markMissing(file.resourceId, System.currentTimeMillis())
thumbnailStore.delete(file.resourceId)
Timber.d("deleted locally %s", uri)
} else {
Timber.w("deleteDocument returned false for %s", uri)
@@ -115,6 +118,7 @@ class FileDeleter @Inject constructor(
}
}
Timber.d("deleted full %s", uri)
thumbnailStore.delete(file.resourceId)
} else {
Timber.w("deleteDocument returned false for %s", uri)
}
@@ -11,6 +11,7 @@ import com.vaultdrop.mobile.data.local.entity.FolderEntity
import com.vaultdrop.mobile.data.repository.FileRepository
import com.vaultdrop.mobile.data.repository.FolderRepository
import com.vaultdrop.mobile.data.repository.OutboxRepository
import com.vaultdrop.mobile.features.thumbnails.ThumbnailStore
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -39,6 +40,7 @@ class FolderDeleter @Inject constructor(
private val fileRepository: FileRepository,
private val outboxRepository: OutboxRepository,
private val appDatabase: AppDatabase,
private val thumbnailStore: ThumbnailStore,
) {
private val resolver: ContentResolver get() = context.contentResolver
@@ -77,6 +79,7 @@ class FolderDeleter @Inject constructor(
tree.files.forEach { fileRepository.markMissing(it.resourceId, now) }
tree.folders.forEach { folderRepository.markMissing(it.resourceId, now) }
folderRepository.markMissing(folder.resourceId, now)
tree.files.forEach { thumbnailStore.delete(it.resourceId) }
Timber.d("deleted folder locally %s", uri)
return true
}
@@ -109,6 +112,7 @@ class FolderDeleter @Inject constructor(
appDatabase.withTransaction {
treeMarkMissing(folder, tree, now)
}
tree.files.forEach { thumbnailStore.delete(it.resourceId) }
Timber.d("deleted folder full %s", uri)
return true
}
@@ -9,6 +9,7 @@ import com.vaultdrop.mobile.data.local.AppDatabase
import com.vaultdrop.mobile.data.local.entity.FileEntity
import com.vaultdrop.mobile.data.repository.FileRepository
import com.vaultdrop.mobile.data.repository.OutboxRepository
import com.vaultdrop.mobile.features.thumbnails.ThumbnailStore
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -35,6 +36,7 @@ class SafFileDeleter @Inject constructor(
private val fileRepository: FileRepository,
private val outboxRepository: OutboxRepository,
private val appDatabase: AppDatabase,
private val thumbnailStore: ThumbnailStore,
) {
private val resolver: ContentResolver get() = context.contentResolver
@@ -58,6 +60,7 @@ class SafFileDeleter @Inject constructor(
}
}
Timber.d("deleted %s", uri)
thumbnailStore.delete(file.resourceId)
} else {
Timber.w("deleteDocument returned false for %s", uri)
}
@@ -53,9 +53,9 @@ import com.vaultdrop.mobile.data.local.entity.FileEntity
import com.vaultdrop.mobile.data.local.entity.FolderEntity
import com.vaultdrop.mobile.features.connection.ConnectionStatusViewModel
import com.vaultdrop.mobile.features.sync.SyncViewModel
import com.vaultdrop.mobile.ui.components.FileCategoryIcon
import com.vaultdrop.mobile.ui.components.FilePendingReviewBadge
import com.vaultdrop.mobile.ui.components.FileSyncStatusIcon
import com.vaultdrop.mobile.ui.components.FileThumbnail
import com.vaultdrop.mobile.ui.components.FolderNameDialog
import com.vaultdrop.mobile.ui.components.MoveFolderPickerDialog
import com.vaultdrop.mobile.ui.components.SelectionState
@@ -457,7 +457,7 @@ private fun FileRow(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(12.dp),
) {
FileCategoryIcon(file = file, size = 24.dp)
FileThumbnail(file = file, size = 40.dp)
Column(modifier = Modifier.weight(1f)) {
Text(
text = file.name,
@@ -89,9 +89,9 @@ import com.vaultdrop.mobile.features.saf.FileDeleter
import com.vaultdrop.mobile.ui.components.DeleteConfirmDialog
import com.vaultdrop.mobile.ui.components.DeleteReview
import com.vaultdrop.mobile.ui.components.DeleteWarningDialog
import com.vaultdrop.mobile.ui.components.FileCategoryIcon
import com.vaultdrop.mobile.ui.components.FilePendingReviewBadge
import com.vaultdrop.mobile.ui.components.FileSyncStatusIcon
import com.vaultdrop.mobile.ui.components.FileThumbnail
import com.vaultdrop.mobile.ui.components.FolderNameDialog
import com.vaultdrop.mobile.ui.components.SelectionState
@@ -1059,7 +1059,7 @@ private fun FileCard(
) {
Column(modifier = Modifier.padding(12.dp)) {
Row(verticalAlignment = androidx.compose.ui.Alignment.CenterVertically) {
FileCategoryIcon(file = file, size = 36.dp)
FileThumbnail(file = file, size = 56.dp)
Spacer(Modifier.weight(1f))
if (selection.active) {
SelectionStatusIcon(selected = selected)
@@ -1122,7 +1122,7 @@ private fun BrowseFileRow(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(12.dp),
) {
FileCategoryIcon(file = file, size = 26.dp)
FileThumbnail(file = file, size = 40.dp)
Column(modifier = Modifier.weight(1f)) {
Text(
text = file.name,