From dc28e8e6775d44a85a3bee4eecda33cf77abe54e Mon Sep 17 00:00:00 2001 From: T8RIN Date: Sun, 15 Feb 2026 21:36:58 +0300 Subject: [PATCH] Added more info about images in pickers --- .../core/data/image/AndroidImageGetter.kt | 4 ++-- .../core/data/saving/AndroidFileController.kt | 8 +++---- .../data/saving/AndroidFilenameCreator.kt | 6 ++--- .../core/ui/utils/helper/ContextUtils.kt | 8 +++---- .../OneTimeSaveLocationSelectionDialog.kt | 4 ++-- .../ui/widget/image/MetadataPreviewButton.kt | 8 +++---- .../t8rin/imagetoolbox/core/utils/UriUtils.kt | 22 +++++++++---------- .../ai_tools/data/AndroidAiToolsRepository.kt | 4 ++-- .../components/NeuralModelsColumn.kt | 4 ++-- .../data/AndroidAudioCoverRetriever.kt | 4 ++-- .../screenLogic/PaletteToolsComponent.kt | 4 ++-- .../settings/data/AndroidSettingsManager.kt | 4 ++-- .../SavingFolderSettingItemGroup.kt | 4 ++-- .../feature/zip/data/AndroidZipManager.kt | 6 ++--- 14 files changed, 45 insertions(+), 45 deletions(-) diff --git a/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/image/AndroidImageGetter.kt b/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/image/AndroidImageGetter.kt index 2cfd29b47..8db59911c 100644 --- a/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/image/AndroidImageGetter.kt +++ b/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/image/AndroidImageGetter.kt @@ -44,7 +44,7 @@ import com.t8rin.imagetoolbox.core.domain.model.IntegerSize import com.t8rin.imagetoolbox.core.domain.transformation.Transformation import com.t8rin.imagetoolbox.core.domain.utils.runSuspendCatching import com.t8rin.imagetoolbox.core.settings.domain.SettingsProvider -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.imagetoolbox.core.utils.tryRequireOriginal import com.t8rin.logger.makeLog import dagger.hilt.android.qualifiers.ApplicationContext @@ -213,7 +213,7 @@ internal class AndroidImageGetter @Inject constructor( } override fun getExtension(uri: String): String? { - val filename = uri.toUri().getFilename(context) ?: "" + val filename = uri.toUri().filename(context) ?: "" if (filename.endsWith(".qoi")) return "qoi" if (filename.endsWith(".jxl")) return "jxl" return if (ContentResolver.SCHEME_CONTENT == uri.toUri().scheme) { diff --git a/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/saving/AndroidFileController.kt b/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/saving/AndroidFileController.kt index fe70c5b3d..43a5503ea 100644 --- a/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/saving/AndroidFileController.kt +++ b/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/saving/AndroidFileController.kt @@ -57,12 +57,12 @@ import com.t8rin.imagetoolbox.core.settings.domain.model.CopyToClipboardMode import com.t8rin.imagetoolbox.core.settings.domain.model.FilenameBehavior import com.t8rin.imagetoolbox.core.settings.domain.model.OneTimeSaveLocation import com.t8rin.imagetoolbox.core.utils.fileSize -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.imagetoolbox.core.utils.getPath import com.t8rin.imagetoolbox.core.utils.listFilesInDirectory import com.t8rin.imagetoolbox.core.utils.listFilesInDirectoryProgressive -import com.t8rin.imagetoolbox.core.utils.toUiPath import com.t8rin.imagetoolbox.core.utils.tryRequireOriginal +import com.t8rin.imagetoolbox.core.utils.uiPath import com.t8rin.logger.makeLog import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.flow.Flow @@ -202,7 +202,7 @@ internal class AndroidFileController @Inject constructor( return@withContext SaveResult.Success( message = getString( R.string.saved_to_original, - originalUri.getFilename(context).toString() + originalUri.filename(context).toString() ), isOverwritten = true, savingPath = savingPath @@ -237,7 +237,7 @@ internal class AndroidFileController @Inject constructor( Exception( getString( R.string.no_such_directory, - treeUri.toUri().toUiPath(treeUri) + treeUri.toUri().uiPath(treeUri) ) ) ) diff --git a/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/saving/AndroidFilenameCreator.kt b/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/saving/AndroidFilenameCreator.kt index 1201d88f3..0a02cc334 100644 --- a/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/saving/AndroidFilenameCreator.kt +++ b/core/data/src/main/java/com/t8rin/imagetoolbox/core/data/saving/AndroidFilenameCreator.kt @@ -52,7 +52,7 @@ import com.t8rin.imagetoolbox.core.domain.saving.model.ImageSaveTarget import com.t8rin.imagetoolbox.core.domain.utils.timestamp import com.t8rin.imagetoolbox.core.settings.domain.SettingsManager import com.t8rin.imagetoolbox.core.settings.domain.model.FilenameBehavior -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.logger.makeLog import dagger.hilt.android.qualifiers.ApplicationContext import java.util.Date @@ -120,7 +120,7 @@ internal class AndroidFilenameCreator @Inject constructor( val suffix = settingsState.filenameSuffix val originalName = if (settingsState.addOriginalFilename && !isOriginalEmpty) { - saveTarget.originalUri.toUri().getFilename(context) + saveTarget.originalUri.toUri().filename(context) ?.substringBeforeLast('.').orEmpty() } else "" @@ -232,6 +232,6 @@ internal class AndroidFilenameCreator @Inject constructor( length: Int ): String = "${randomStringGenerator.generate(length)}.${extension}" - override fun getFilename(uri: String): String = uri.toUri().getFilename(context) ?: "" + override fun getFilename(uri: String): String = uri.toUri().filename(context) ?: "" } \ No newline at end of file diff --git a/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/utils/helper/ContextUtils.kt b/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/utils/helper/ContextUtils.kt index 0aa0650a4..eb80c87e2 100644 --- a/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/utils/helper/ContextUtils.kt +++ b/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/utils/helper/ContextUtils.kt @@ -64,7 +64,7 @@ import com.t8rin.imagetoolbox.core.ui.utils.permission.PermissionUtils.checkPerm import com.t8rin.imagetoolbox.core.ui.utils.permission.PermissionUtils.hasPermissionAllowed import com.t8rin.imagetoolbox.core.ui.utils.permission.PermissionUtils.setPermissionsAllowed import com.t8rin.imagetoolbox.core.utils.appContext -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.logger.makeLog import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -190,7 +190,7 @@ object ContextUtils { fun rememberFilename(uri: Uri): String? { return remember(uri) { derivedStateOf { - uri.getFilename() + uri.filename() } }.value } @@ -456,7 +456,7 @@ object ContextUtils { } fun Uri.getExtension(): String? = runCatching { - val filename = getFilename().orEmpty() + val filename = filename().orEmpty() if (filename.endsWith(".qoi")) return "qoi" if (filename.endsWith(".jxl")) return "jxl" return if (ContentResolver.SCHEME_CONTENT == scheme) { @@ -508,7 +508,7 @@ object ContextUtils { contentResolver.openInputStream(this@moveToCache)?.use { stream -> val file = File( cacheDir, - getFilename() ?: "cache_${Random.nextInt()}.tmp" + filename() ?: "cache_${Random.nextInt()}.tmp" ).apply { createNewFile() } file.outputStream().use { stream.copyTo(it) } diff --git a/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/widget/dialogs/OneTimeSaveLocationSelectionDialog.kt b/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/widget/dialogs/OneTimeSaveLocationSelectionDialog.kt index 5e3d61d67..79a84d6aa 100644 --- a/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/widget/dialogs/OneTimeSaveLocationSelectionDialog.kt +++ b/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/widget/dialogs/OneTimeSaveLocationSelectionDialog.kt @@ -80,7 +80,7 @@ import com.t8rin.imagetoolbox.core.ui.widget.other.rememberRevealState import com.t8rin.imagetoolbox.core.ui.widget.preferences.PreferenceItem import com.t8rin.imagetoolbox.core.ui.widget.preferences.PreferenceItemDefaults import com.t8rin.imagetoolbox.core.ui.widget.preferences.PreferenceRowSwitch -import com.t8rin.imagetoolbox.core.utils.toUiPath +import com.t8rin.imagetoolbox.core.utils.uiPath import kotlinx.coroutines.launch @@ -170,7 +170,7 @@ fun OneTimeSaveLocationSelectionDialog( val title by remember(item) { derivedStateOf { val default = essentials.getString(R.string.default_folder) - item?.uri?.toUri()?.toUiPath(default = default) ?: default + item?.uri?.toUri()?.uiPath(default = default) ?: default } } val subtitle by remember(item) { diff --git a/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/widget/image/MetadataPreviewButton.kt b/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/widget/image/MetadataPreviewButton.kt index 79a053312..50ae6d1a3 100644 --- a/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/widget/image/MetadataPreviewButton.kt +++ b/core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/widget/image/MetadataPreviewButton.kt @@ -66,9 +66,9 @@ import com.t8rin.imagetoolbox.core.ui.widget.modifier.container import com.t8rin.imagetoolbox.core.ui.widget.text.RoundedTextField import com.t8rin.imagetoolbox.core.ui.widget.text.RoundedTextFieldColors import com.t8rin.imagetoolbox.core.ui.widget.text.TitleItem -import com.t8rin.imagetoolbox.core.utils.addedTime +import com.t8rin.imagetoolbox.core.utils.dateAdded import com.t8rin.imagetoolbox.core.utils.fileSize -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.imagetoolbox.core.utils.lastModified import com.t8rin.imagetoolbox.core.utils.path @@ -76,9 +76,9 @@ import com.t8rin.imagetoolbox.core.utils.path fun MetadataPreviewButton( uri: Uri?, dateModified: (Uri) -> Long? = { it.lastModified() }, - dateAdded: (Uri) -> Long? = { it.addedTime() }, + dateAdded: (Uri) -> Long? = { it.dateAdded() }, path: (Uri) -> String? = { it.path() }, - name: (Uri) -> String? = { it.getFilename() }, + name: (Uri) -> String? = { it.filename() }, fileSize: (Uri) -> String? = { humanFileSize(it.fileSize() ?: 0L, 2) } ) { AnimatedContent( diff --git a/core/utils/src/main/java/com/t8rin/imagetoolbox/core/utils/UriUtils.kt b/core/utils/src/main/java/com/t8rin/imagetoolbox/core/utils/UriUtils.kt index 747b1904d..4441052e3 100644 --- a/core/utils/src/main/java/com/t8rin/imagetoolbox/core/utils/UriUtils.kt +++ b/core/utils/src/main/java/com/t8rin/imagetoolbox/core/utils/UriUtils.kt @@ -44,7 +44,7 @@ import java.net.URLDecoder import java.net.URLEncoder import java.util.LinkedList -fun Uri?.toUiPath( +fun Uri?.uiPath( default: String ): String = this?.let { uri -> DocumentFile @@ -118,11 +118,11 @@ fun Uri.path(): String? = tryExtractOriginal().run { } } -fun Uri.addedTime(): Long? = tryExtractOriginal().run { +fun Uri.dateAdded(): Long? = tryExtractOriginal().run { getLongColumn(MediaStore.MediaColumns.DATE_ADDED)?.times(1000) } -fun Uri.getFilename( +fun Uri.filename( context: Context = appContext ): String? = tryExtractOriginal().run { if (this.toString().startsWith("file:///")) { @@ -221,23 +221,23 @@ fun String.encodeEscaped(): String { } fun Uri.isApng(): Boolean { - return getFilename().toString().endsWith(".png") + return filename().toString().endsWith(".png") .or(appContext.contentResolver.getType(this)?.contains("png") == true) .or(appContext.contentResolver.getType(this)?.contains("apng") == true) } fun Uri.isWebp(): Boolean { - return getFilename().toString().endsWith(".webp") + return filename().toString().endsWith(".webp") .or(appContext.contentResolver.getType(this)?.contains("webp") == true) } fun Uri.isJxl(): Boolean { - return getFilename().toString().endsWith(".jxl") + return filename().toString().endsWith(".jxl") .or(appContext.contentResolver.getType(this)?.contains("jxl") == true) } fun Uri.isGif(): Boolean { - return getFilename().toString().endsWith(".gif") + return filename().toString().endsWith(".gif") .or(appContext.contentResolver.getType(this)?.contains("gif") == true) } @@ -253,7 +253,7 @@ fun Context.listFilesInDirectoryProgressive( fun String?.getPath( context: Context = appContext -) = this?.takeIf { it.isNotEmpty() }?.toUri().toUiPath( +) = this?.takeIf { it.isNotEmpty() }?.toUri().uiPath( default = context.getString(R.string.default_folder) ) @@ -332,7 +332,7 @@ private fun isDirectory(mimeType: String): Boolean { private fun List.sortedByExtension( descending: Boolean = false ) = sortedByKey(descending) { - it.getFilename()?.substringAfterLast( + it.filename()?.substringAfterLast( delimiter = '.', missingDelimiterValue = "" )?.lowercase() @@ -345,7 +345,7 @@ private fun List.sortedByDateModified( private fun List.sortedByName( descending: Boolean = false ) = sortedByKey(descending) { - it.getFilename() + it.filename() } private fun List.sortedBySize( @@ -365,7 +365,7 @@ private fun List.sortedByMimeType( private fun List.sortedByDateAdded( descending: Boolean = false ) = sortedByKey(descending) { - it.addedTime() + it.dateAdded() } private fun Uri.getLongColumn(column: String): Long? = diff --git a/feature/ai-tools/src/main/java/com/t8rin/imagetoolbox/feature/ai_tools/data/AndroidAiToolsRepository.kt b/feature/ai-tools/src/main/java/com/t8rin/imagetoolbox/feature/ai_tools/data/AndroidAiToolsRepository.kt index a8b11bf9e..343eeec2a 100644 --- a/feature/ai-tools/src/main/java/com/t8rin/imagetoolbox/feature/ai_tools/data/AndroidAiToolsRepository.kt +++ b/feature/ai-tools/src/main/java/com/t8rin/imagetoolbox/feature/ai_tools/data/AndroidAiToolsRepository.kt @@ -44,7 +44,7 @@ import com.t8rin.imagetoolbox.core.domain.saving.KeepAliveService import com.t8rin.imagetoolbox.core.domain.saving.model.SaveResult import com.t8rin.imagetoolbox.core.domain.saving.track import com.t8rin.imagetoolbox.core.resources.R -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.imagetoolbox.feature.ai_tools.domain.AiProgressListener import com.t8rin.imagetoolbox.feature.ai_tools.domain.AiToolsRepository import com.t8rin.imagetoolbox.feature.ai_tools.domain.model.NeuralConstants @@ -193,7 +193,7 @@ internal class AndroidAiToolsRepository @Inject constructor( } val modelName = possibleModel?.name - ?: uri.toUri().getFilename().orEmpty().ifEmpty { + ?: uri.toUri().filename().orEmpty().ifEmpty { "imported_model_($modelChecksum).onnx" } diff --git a/feature/ai-tools/src/main/java/com/t8rin/imagetoolbox/feature/ai_tools/presentation/components/NeuralModelsColumn.kt b/feature/ai-tools/src/main/java/com/t8rin/imagetoolbox/feature/ai_tools/presentation/components/NeuralModelsColumn.kt index c0452cbbe..24c53eb23 100644 --- a/feature/ai-tools/src/main/java/com/t8rin/imagetoolbox/feature/ai_tools/presentation/components/NeuralModelsColumn.kt +++ b/feature/ai-tools/src/main/java/com/t8rin/imagetoolbox/feature/ai_tools/presentation/components/NeuralModelsColumn.kt @@ -94,7 +94,7 @@ import com.t8rin.imagetoolbox.core.ui.widget.preferences.PreferenceItem import com.t8rin.imagetoolbox.core.ui.widget.preferences.PreferenceItemOverload import com.t8rin.imagetoolbox.core.ui.widget.saver.OneTimeEffect import com.t8rin.imagetoolbox.core.ui.widget.text.TitleItem -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.imagetoolbox.feature.ai_tools.domain.model.NeuralModel import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -117,7 +117,7 @@ internal fun NeuralModelsColumn( val listState = rememberLazyListState() val filePicker = rememberFilePicker { uri: Uri -> - val name = uri.getFilename().orEmpty() + val name = uri.filename().orEmpty() if (name.endsWith(".onnx") || name.endsWith(".ort")) { onImportModel(uri) { when (it) { diff --git a/feature/audio-cover-extractor/src/main/java/com/t8rin/imagetoolbox/feature/audio_cover_extractor/data/AndroidAudioCoverRetriever.kt b/feature/audio-cover-extractor/src/main/java/com/t8rin/imagetoolbox/feature/audio_cover_extractor/data/AndroidAudioCoverRetriever.kt index 14dd5091a..bfd138103 100644 --- a/feature/audio-cover-extractor/src/main/java/com/t8rin/imagetoolbox/feature/audio_cover_extractor/data/AndroidAudioCoverRetriever.kt +++ b/feature/audio-cover-extractor/src/main/java/com/t8rin/imagetoolbox/feature/audio_cover_extractor/data/AndroidAudioCoverRetriever.kt @@ -29,7 +29,7 @@ import com.t8rin.imagetoolbox.core.domain.image.model.ImageFormat import com.t8rin.imagetoolbox.core.domain.image.model.Quality import com.t8rin.imagetoolbox.core.domain.resource.ResourceManager import com.t8rin.imagetoolbox.core.resources.R -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.imagetoolbox.feature.audio_cover_extractor.domain.AudioCoverRetriever import com.t8rin.imagetoolbox.feature.audio_cover_extractor.domain.model.AudioCoverResult import dagger.hilt.android.qualifiers.ApplicationContext @@ -71,7 +71,7 @@ internal class AndroidAudioCoverRetriever @Inject constructor( data = pictureData, originalSize = true )?.let { bitmap -> - val originalName = audioUri.toUri().getFilename(context)?.substringBeforeLast('.') + val originalName = audioUri.toUri().filename(context)?.substringBeforeLast('.') ?: "AUDIO_${System.currentTimeMillis()}" shareProvider.cacheData( diff --git a/feature/palette-tools/src/main/java/com/t8rin/imagetoolbox/feature/palette_tools/presentation/screenLogic/PaletteToolsComponent.kt b/feature/palette-tools/src/main/java/com/t8rin/imagetoolbox/feature/palette_tools/presentation/screenLogic/PaletteToolsComponent.kt index d2df06f99..4c970a646 100644 --- a/feature/palette-tools/src/main/java/com/t8rin/imagetoolbox/feature/palette_tools/presentation/screenLogic/PaletteToolsComponent.kt +++ b/feature/palette-tools/src/main/java/com/t8rin/imagetoolbox/feature/palette_tools/presentation/screenLogic/PaletteToolsComponent.kt @@ -33,7 +33,7 @@ import com.t8rin.imagetoolbox.core.domain.utils.smartJob import com.t8rin.imagetoolbox.core.domain.utils.timestamp import com.t8rin.imagetoolbox.core.ui.utils.BaseComponent import com.t8rin.imagetoolbox.core.ui.utils.state.update -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.imagetoolbox.feature.palette_tools.presentation.components.PaletteType import com.t8rin.imagetoolbox.feature.palette_tools.presentation.components.model.NamedPalette import com.t8rin.imagetoolbox.feature.palette_tools.presentation.components.model.PaletteFormatHelper @@ -110,7 +110,7 @@ class PaletteToolsComponent @AssistedInject internal constructor( withContext(defaultDispatcher) { val data = fileController.readBytes(uri.toString()) val entries = - PaletteFormatHelper.entriesFor(uri.getFilename() ?: uri.toString()) + PaletteFormatHelper.entriesFor(uri.filename() ?: uri.toString()) for (format in entries) { format.getCoder().use { decode(data) }.onSuccess { palette -> diff --git a/feature/settings/src/main/java/com/t8rin/imagetoolbox/feature/settings/data/AndroidSettingsManager.kt b/feature/settings/src/main/java/com/t8rin/imagetoolbox/feature/settings/data/AndroidSettingsManager.kt index cf9c14195..c789d0976 100644 --- a/feature/settings/src/main/java/com/t8rin/imagetoolbox/feature/settings/data/AndroidSettingsManager.kt +++ b/feature/settings/src/main/java/com/t8rin/imagetoolbox/feature/settings/data/AndroidSettingsManager.kt @@ -57,7 +57,7 @@ import com.t8rin.imagetoolbox.core.settings.domain.model.ShapeType import com.t8rin.imagetoolbox.core.settings.domain.model.SliderType import com.t8rin.imagetoolbox.core.settings.domain.model.SnowfallMode import com.t8rin.imagetoolbox.core.settings.domain.model.SwitchType -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.imagetoolbox.feature.settings.data.keys.ADD_ORIGINAL_NAME_TO_FILENAME import com.t8rin.imagetoolbox.feature.settings.data.keys.ADD_PRESET_TO_FILENAME import com.t8rin.imagetoolbox.feature.settings.data.keys.ADD_SCALE_MODE_TO_FILENAME @@ -831,7 +831,7 @@ internal class AndroidSettingsManager @Inject constructor( val font = context.contentResolver.openInputStream(uri.toUri())?.use { it.buffered().readBytes() } ?: ByteArray(0) - val filename = uri.toUri().getFilename(context) ?: "font${Random.nextInt()}.ttf" + val filename = uri.toUri().filename(context) ?: "font${Random.nextInt()}.ttf" val directory = File(context.filesDir, "customFonts").apply { mkdir() diff --git a/feature/settings/src/main/java/com/t8rin/imagetoolbox/feature/settings/presentation/components/SavingFolderSettingItemGroup.kt b/feature/settings/src/main/java/com/t8rin/imagetoolbox/feature/settings/presentation/components/SavingFolderSettingItemGroup.kt index 17560f9c3..74ded55e6 100644 --- a/feature/settings/src/main/java/com/t8rin/imagetoolbox/feature/settings/presentation/components/SavingFolderSettingItemGroup.kt +++ b/feature/settings/src/main/java/com/t8rin/imagetoolbox/feature/settings/presentation/components/SavingFolderSettingItemGroup.kt @@ -41,7 +41,7 @@ import com.t8rin.imagetoolbox.core.ui.utils.content_pickers.rememberFolderPicker import com.t8rin.imagetoolbox.core.ui.utils.provider.SafeLocalContainerColor import com.t8rin.imagetoolbox.core.ui.widget.modifier.ShapeDefaults import com.t8rin.imagetoolbox.core.ui.widget.preferences.PreferenceItem -import com.t8rin.imagetoolbox.core.utils.toUiPath +import com.t8rin.imagetoolbox.core.utils.uiPath @Composable fun SavingFolderSettingItemGroup( @@ -85,7 +85,7 @@ fun SavingFolderSettingItemGroup( launcher.pickFolder(currentFolderUri) }, title = stringResource(R.string.custom), - subtitle = currentFolderUri.toUiPath( + subtitle = currentFolderUri.uiPath( default = stringResource(R.string.unspecified) ), containerColor = takeColorFromScheme { diff --git a/feature/zip/src/main/java/com/t8rin/imagetoolbox/feature/zip/data/AndroidZipManager.kt b/feature/zip/src/main/java/com/t8rin/imagetoolbox/feature/zip/data/AndroidZipManager.kt index 386c8abd4..b2af1156a 100644 --- a/feature/zip/src/main/java/com/t8rin/imagetoolbox/feature/zip/data/AndroidZipManager.kt +++ b/feature/zip/src/main/java/com/t8rin/imagetoolbox/feature/zip/data/AndroidZipManager.kt @@ -22,7 +22,7 @@ import androidx.core.net.toUri import com.t8rin.imagetoolbox.core.data.utils.outputStream import com.t8rin.imagetoolbox.core.domain.coroutines.DispatchersHolder import com.t8rin.imagetoolbox.core.domain.image.ShareProvider -import com.t8rin.imagetoolbox.core.utils.getFilename +import com.t8rin.imagetoolbox.core.utils.filename import com.t8rin.imagetoolbox.feature.zip.domain.ZipManager import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.withContext @@ -48,7 +48,7 @@ internal class AndroidZipManager @Inject constructor( withContext(ioDispatcher) { context.contentResolver.openInputStream(file.toUri()).use { input -> BufferedInputStream(input).use { origin -> - val entry = ZipEntry(file.toUri().getFilename(context)) + val entry = ZipEntry(file.toUri().filename(context)) output.putNextEntry(entry) origin.copyTo(output, 1024) } @@ -58,7 +58,7 @@ internal class AndroidZipManager @Inject constructor( } } }, - filename = files.firstOrNull()?.toUri()?.getFilename() ?: "temp.zip" + filename = files.firstOrNull()?.toUri()?.filename() ?: "temp.zip" ) ?: throw IllegalArgumentException("Cached to null file") }