Skip to content

Commit 671cace

Browse files
committed
add file icons to patch rename dialog (#128)
1 parent 8bf66fb commit 671cace

File tree

1 file changed

+38
-14
lines changed
  • app/src/main/java/com/raival/compose/file/explorer/screen/main/tab/files/ui/dialog

1 file changed

+38
-14
lines changed

app/src/main/java/com/raival/compose/file/explorer/screen/main/tab/files/ui/dialog/RenameDialog.kt

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.raival.compose.file.explorer.screen.main.tab.files.ui.dialog
33
import androidx.compose.foundation.background
44
import androidx.compose.foundation.isSystemInDarkTheme
55
import androidx.compose.foundation.layout.Arrangement
6+
import androidx.compose.foundation.layout.Box
67
import androidx.compose.foundation.layout.Column
78
import androidx.compose.foundation.layout.Row
89
import androidx.compose.foundation.layout.fillMaxSize
@@ -19,9 +20,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState
1920
import androidx.compose.foundation.shape.RoundedCornerShape
2021
import androidx.compose.material.icons.Icons
2122
import androidx.compose.material.icons.automirrored.rounded.ArrowForward
22-
import androidx.compose.material.icons.automirrored.rounded.InsertDriveFile
2323
import androidx.compose.material.icons.automirrored.rounded.Sort
24-
import androidx.compose.material.icons.rounded.Folder
2524
import androidx.compose.material.icons.rounded.Info
2625
import androidx.compose.material3.AlertDialog
2726
import androidx.compose.material3.Button
@@ -52,8 +51,11 @@ import androidx.compose.runtime.remember
5251
import androidx.compose.runtime.setValue
5352
import androidx.compose.ui.Alignment
5453
import androidx.compose.ui.Modifier
54+
import androidx.compose.ui.draw.clip
5555
import androidx.compose.ui.graphics.Color
56+
import androidx.compose.ui.graphics.FilterQuality
5657
import androidx.compose.ui.graphics.RectangleShape
58+
import androidx.compose.ui.layout.ContentScale
5759
import androidx.compose.ui.res.stringResource
5860
import androidx.compose.ui.text.TextRange
5961
import androidx.compose.ui.text.font.FontWeight
@@ -62,6 +64,8 @@ import androidx.compose.ui.text.style.TextAlign
6264
import androidx.compose.ui.unit.dp
6365
import androidx.compose.ui.window.Dialog
6466
import androidx.compose.ui.window.DialogProperties
67+
import coil3.compose.AsyncImage
68+
import coil3.request.ImageRequest
6569
import com.google.accompanist.systemuicontroller.rememberSystemUiController
6670
import com.raival.compose.file.explorer.App.Companion.globalClass
6771
import com.raival.compose.file.explorer.R
@@ -70,10 +74,12 @@ import com.raival.compose.file.explorer.common.isNot
7074
import com.raival.compose.file.explorer.common.isValidAsFileName
7175
import com.raival.compose.file.explorer.common.ui.Space
7276
import com.raival.compose.file.explorer.screen.main.tab.files.FilesTab
77+
import com.raival.compose.file.explorer.screen.main.tab.files.coil.canUseCoil
7378
import com.raival.compose.file.explorer.screen.main.tab.files.holder.ContentHolder
7479
import com.raival.compose.file.explorer.screen.main.tab.files.task.RenameTask
7580
import com.raival.compose.file.explorer.screen.main.tab.files.task.RenameTask.Companion.transformFileName
7681
import com.raival.compose.file.explorer.screen.main.tab.files.task.RenameTaskParameters
82+
import com.raival.compose.file.explorer.screen.main.tab.files.ui.FileContentIcon
7783
import kotlinx.coroutines.launch
7884
import sh.calvin.reorderable.ReorderableItem
7985
import 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

Comments
 (0)