@@ -3,6 +3,7 @@ package com.raival.compose.file.explorer.screen.main.tab.files.ui.dialog
33import androidx.compose.foundation.background
44import androidx.compose.foundation.isSystemInDarkTheme
55import androidx.compose.foundation.layout.Arrangement
6+ import androidx.compose.foundation.layout.Box
67import androidx.compose.foundation.layout.Column
78import androidx.compose.foundation.layout.Row
89import androidx.compose.foundation.layout.fillMaxSize
@@ -19,9 +20,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState
1920import androidx.compose.foundation.shape.RoundedCornerShape
2021import androidx.compose.material.icons.Icons
2122import androidx.compose.material.icons.automirrored.rounded.ArrowForward
22- import androidx.compose.material.icons.automirrored.rounded.InsertDriveFile
2323import androidx.compose.material.icons.automirrored.rounded.Sort
24- import androidx.compose.material.icons.rounded.Folder
2524import androidx.compose.material.icons.rounded.Info
2625import androidx.compose.material3.AlertDialog
2726import androidx.compose.material3.Button
@@ -52,8 +51,11 @@ import androidx.compose.runtime.remember
5251import androidx.compose.runtime.setValue
5352import androidx.compose.ui.Alignment
5453import androidx.compose.ui.Modifier
54+ import androidx.compose.ui.draw.clip
5555import androidx.compose.ui.graphics.Color
56+ import androidx.compose.ui.graphics.FilterQuality
5657import androidx.compose.ui.graphics.RectangleShape
58+ import androidx.compose.ui.layout.ContentScale
5759import androidx.compose.ui.res.stringResource
5860import androidx.compose.ui.text.TextRange
5961import androidx.compose.ui.text.font.FontWeight
@@ -62,6 +64,8 @@ import androidx.compose.ui.text.style.TextAlign
6264import androidx.compose.ui.unit.dp
6365import androidx.compose.ui.window.Dialog
6466import androidx.compose.ui.window.DialogProperties
67+ import coil3.compose.AsyncImage
68+ import coil3.request.ImageRequest
6569import com.google.accompanist.systemuicontroller.rememberSystemUiController
6670import com.raival.compose.file.explorer.App.Companion.globalClass
6771import com.raival.compose.file.explorer.R
@@ -70,10 +74,12 @@ import com.raival.compose.file.explorer.common.isNot
7074import com.raival.compose.file.explorer.common.isValidAsFileName
7175import com.raival.compose.file.explorer.common.ui.Space
7276import com.raival.compose.file.explorer.screen.main.tab.files.FilesTab
77+ import com.raival.compose.file.explorer.screen.main.tab.files.coil.canUseCoil
7378import com.raival.compose.file.explorer.screen.main.tab.files.holder.ContentHolder
7479import com.raival.compose.file.explorer.screen.main.tab.files.task.RenameTask
7580import com.raival.compose.file.explorer.screen.main.tab.files.task.RenameTask.Companion.transformFileName
7681import com.raival.compose.file.explorer.screen.main.tab.files.task.RenameTaskParameters
82+ import com.raival.compose.file.explorer.screen.main.tab.files.ui.FileContentIcon
7783import kotlinx.coroutines.launch
7884import sh.calvin.reorderable.ReorderableItem
7985import sh.calvin.reorderable.rememberReorderableLazyListState
@@ -628,24 +634,41 @@ fun AdvanceRenameDialog(
628634 ),
629635 verticalAlignment = Alignment .CenterVertically
630636 ) {
631- Icon (
632- imageVector = if (item.second.isFolder)
633- Icons .Rounded .Folder
634- else Icons .AutoMirrored .Rounded .InsertDriveFile ,
635- contentDescription = null ,
636- tint = if (conflicts.contains(item.first))
637- MaterialTheme .colorScheme.error
638- else MaterialTheme .colorScheme.primary,
639- modifier = Modifier .size(20 .dp)
640- )
637+ Box (
638+ modifier = Modifier
639+ .size(30 .dp)
640+ .clip(
641+ RoundedCornerShape (6 .dp)
642+ )
643+ ) {
644+ var useCoil by remember(item.second.uid) {
645+ mutableStateOf(canUseCoil(item.second))
646+ }
647+ if (useCoil) {
648+ AsyncImage (
649+ modifier = Modifier .fillMaxSize(),
650+ model = ImageRequest
651+ .Builder (globalClass)
652+ .data(item.second)
653+ .build(),
654+ filterQuality = FilterQuality .Low ,
655+ contentScale = ContentScale .Fit ,
656+ contentDescription = null ,
657+ onError = { useCoil = false }
658+ )
659+ } else {
660+ FileContentIcon (item.second)
661+ }
662+ }
641663 Space (12 .dp)
642664 Column (modifier = Modifier .weight(1f )) {
643665 Text (
644666 text = item.second.displayName,
645667 style = MaterialTheme .typography.bodyMedium,
646668 color = if (conflicts.contains(item.first))
647669 MaterialTheme .colorScheme.error
648- else MaterialTheme .colorScheme.onSurfaceVariant
670+ else MaterialTheme .colorScheme.onSurfaceVariant,
671+ maxLines = 2 ,
649672 )
650673 Row (
651674 verticalAlignment = Alignment .CenterVertically
@@ -665,7 +688,8 @@ fun AdvanceRenameDialog(
665688 fontWeight = FontWeight .Medium ,
666689 color = if (conflicts.contains(item.first))
667690 MaterialTheme .colorScheme.error
668- else MaterialTheme .colorScheme.onSurface
691+ else MaterialTheme .colorScheme.onSurface,
692+ maxLines = 2
669693 )
670694 }
671695 }
0 commit comments