From 5b7cb17dc8eda9b101f4857c14e015e9b74506ae Mon Sep 17 00:00:00 2001 From: mhsngr Date: Sun, 20 Sep 2026 17:39:42 +0200 Subject: [PATCH] feat(ui): show file download priority in files list Append the priority (High/Low/Mixed) to each row's supporting text in the torrent files list, shared by the torrent properties Files tab and the Add-Torrent file list. Normal priority renders no suffix since it is the default state. --- .../ui/addtorrent/AddTorrentFileScreen.kt | 5 ++++- .../ui/components/TremotesfTorrentFilesList.kt | 12 ++++++++++++ .../tremotesf/ui/torrentproperties/FilesTab.kt | 14 +++++++++----- app/src/main/res/values/strings.xml | 2 ++ 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/org/equeim/tremotesf/ui/addtorrent/AddTorrentFileScreen.kt b/app/src/main/kotlin/org/equeim/tremotesf/ui/addtorrent/AddTorrentFileScreen.kt index 5c980a13..e7ea8430 100644 --- a/app/src/main/kotlin/org/equeim/tremotesf/ui/addtorrent/AddTorrentFileScreen.kt +++ b/app/src/main/kotlin/org/equeim/tremotesf/ui/addtorrent/AddTorrentFileScreen.kt @@ -82,6 +82,7 @@ import org.equeim.tremotesf.ui.components.TremotesfRuntimePermissionHelper import org.equeim.tremotesf.ui.components.TremotesfScrollableTopAppBarWithSubtitle import org.equeim.tremotesf.ui.components.TremotesfTopAppBarDefaults import org.equeim.tremotesf.ui.components.TremotesfTorrentsFilesList +import org.equeim.tremotesf.ui.components.withFilePriority import org.equeim.tremotesf.ui.components.rememberTremotesfRuntimePermissionHelperState import org.equeim.tremotesf.ui.utils.rememberFileSizeFormatter @@ -447,7 +448,9 @@ private fun FilesTab( TremotesfTorrentsFilesList( filesTree = filesTree, contentPadding = innerPadding, - itemSupportingContent = { Text(fileSizeFormatter.formatFileSize(FileSize.fromBytes(it.size))) }, + itemSupportingContent = { + Text(withFilePriority(fileSizeFormatter.formatFileSize(FileSize.fromBytes(it.size)), it.priority)) + }, modifier = Modifier.fillMaxSize() ) } diff --git a/app/src/main/kotlin/org/equeim/tremotesf/ui/components/TremotesfTorrentFilesList.kt b/app/src/main/kotlin/org/equeim/tremotesf/ui/components/TremotesfTorrentFilesList.kt index a104b10a..71500695 100644 --- a/app/src/main/kotlin/org/equeim/tremotesf/ui/components/TremotesfTorrentFilesList.kt +++ b/app/src/main/kotlin/org/equeim/tremotesf/ui/components/TremotesfTorrentFilesList.kt @@ -60,6 +60,7 @@ import kotlinx.coroutines.launch import kotlinx.parcelize.Parcelize import org.equeim.tremotesf.R import org.equeim.tremotesf.torrentfile.TorrentFilesTree +import org.equeim.tremotesf.torrentfile.TorrentFilesTree.Item.Priority import org.equeim.tremotesf.torrentfile.TorrentFilesTree.Item.WantedState import org.equeim.tremotesf.ui.Dimens import org.equeim.tremotesf.ui.FileDownload @@ -403,3 +404,14 @@ private fun computeSelectedItemsPriority( } return priority ?: TorrentFilesTree.Item.Priority.Normal } + +@Composable +fun withFilePriority(text: String, priority: Priority): String { + val priorityNameId = when (priority) { + Priority.Normal -> return text + Priority.High -> R.string.high_priority + Priority.Low -> R.string.low_pririty + Priority.Mixed -> R.string.mixed_priority + } + return stringResource(R.string.string_with_priority, text, stringResource(priorityNameId)) +} diff --git a/app/src/main/kotlin/org/equeim/tremotesf/ui/torrentproperties/FilesTab.kt b/app/src/main/kotlin/org/equeim/tremotesf/ui/torrentproperties/FilesTab.kt index 6c30489f..920a7c8d 100644 --- a/app/src/main/kotlin/org/equeim/tremotesf/ui/torrentproperties/FilesTab.kt +++ b/app/src/main/kotlin/org/equeim/tremotesf/ui/torrentproperties/FilesTab.kt @@ -36,6 +36,7 @@ import org.equeim.tremotesf.ui.Dimens import org.equeim.tremotesf.ui.components.TremotesfErrorPlaceholder import org.equeim.tremotesf.ui.components.TremotesfLoadingPlaceholder import org.equeim.tremotesf.ui.components.TremotesfTorrentsFilesList +import org.equeim.tremotesf.ui.components.withFilePriority import org.equeim.tremotesf.ui.utils.rememberFileSizeFormatter import org.equeim.tremotesf.ui.utils.rememberNumberFormat import java.text.DecimalFormat @@ -102,11 +103,14 @@ fun FilesTab( Column(Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(Dimens.SpacingSmall)) { LinearProgressIndicator(progress = { it.progress }, gapSize = 0.dp, drawStopIndicator = {}) Text( - stringResource( - R.string.completed_string, - fileSizeFormatter.formatFileSize(FileSize.fromBytes(it.completedSize)), - fileSizeFormatter.formatFileSize(FileSize.fromBytes(it.size)), - progressFormatter.format(it.progress * 100) + withFilePriority( + stringResource( + R.string.completed_string, + fileSizeFormatter.formatFileSize(FileSize.fromBytes(it.completedSize)), + fileSizeFormatter.formatFileSize(FileSize.fromBytes(it.size)), + progressFormatter.format(it.progress * 100) + ), + it.priority ) ) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ed7502c3..9a80544d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -147,6 +147,8 @@ SPDX-License-Identifier: GPL-3.0-or-later Normal Low Mixed + + %1$s \u00b7 %2$s Download Not download