diff options
Diffstat (limited to 'Hotline/macOS/TransfersView.swift')
| -rw-r--r-- | Hotline/macOS/TransfersView.swift | 54 |
1 files changed, 16 insertions, 38 deletions
diff --git a/Hotline/macOS/TransfersView.swift b/Hotline/macOS/TransfersView.swift index 5f9357d..9bef02c 100644 --- a/Hotline/macOS/TransfersView.swift +++ b/Hotline/macOS/TransfersView.swift @@ -312,9 +312,17 @@ struct TransferRow: View { .foregroundStyle(.fileComplete) } else { - ProgressView(value: self.transfer.progress, total: 1.0) - .progressViewStyle(.linear) - .controlSize(.large) + if self.transfer.progress == 0 { + ProgressView() + .progressViewStyle(.linear) + .controlSize(.large) + } + else { + ProgressView(value: self.transfer.progress, total: 1.0) + .progressViewStyle(.linear) + .controlSize(.large) + } + } } } @@ -328,17 +336,17 @@ struct TransferRow: View { // Text("\(Int(self.transfer.progress * 100))%") // Speed - if let speed = self.transfer.speed { - Label(self.formatSpeed(speed), systemImage: self.transfer.isUpload ? "arrow.up" : "arrow.down") + if let speed = self.transfer.displaySpeed { + Label(speed, systemImage: self.transfer.isUpload ? "arrow.up" : "arrow.down") } // Time remaining - if let timeRemaining = self.transfer.timeRemaining { - Label(self.formatTimeRemaining(timeRemaining), systemImage: "clock") + if let timeRemaining = self.transfer.displayTimeRemaining { + Label(timeRemaining, systemImage: "clock") } // File size - Label(self.formatSize(self.transfer.size), systemImage: "document") + Label(self.transfer.displaySize, systemImage: "document") } .font(.subheadline) .foregroundStyle(.secondary) @@ -392,36 +400,6 @@ struct TransferRow: View { } } } - - // MARK: - Formatting - - private func formatSize(_ bytes: UInt) -> String { - let formatter = ByteCountFormatter() - formatter.countStyle = .file - formatter.allowedUnits = [.useKB, .useMB, .useGB] - return formatter.string(fromByteCount: Int64(bytes)) - } - - private func formatSpeed(_ bytesPerSecond: Double) -> String { - let formatter = ByteCountFormatter() - formatter.countStyle = .file - formatter.allowedUnits = [.useKB, .useMB, .useGB] - return "\(formatter.string(fromByteCount: Int64(bytesPerSecond)))/s" - } - - private func formatTimeRemaining(_ seconds: TimeInterval) -> String { - if seconds < 60 { - return "\(Int(seconds))s" - } else if seconds < 3600 { - let minutes = Int(seconds / 60) - let secs = Int(seconds.truncatingRemainder(dividingBy: 60)) - return "\(minutes)m \(secs)s" - } else { - let hours = Int(seconds / 3600) - let minutes = Int((seconds.truncatingRemainder(dividingBy: 3600)) / 60) - return "\(hours)h \(minutes)m" - } - } } // MARK: - Preview |