From 2c71e66978a3ef92ab57872d23952b08a687ad00 Mon Sep 17 00:00:00 2001 From: tuanhoang Date: Wed, 10 Apr 2024 21:16:28 +0800 Subject: [PATCH] task/22737/Add filesize in media item view controlller --- .../Media/MediaItemViewController.swift | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Media/MediaItemViewController.swift b/WordPress/Classes/ViewRelated/Media/MediaItemViewController.swift index 783d9d571920..6d22c4916b03 100644 --- a/WordPress/Classes/ViewRelated/Media/MediaItemViewController.swift +++ b/WordPress/Classes/ViewRelated/Media/MediaItemViewController.swift @@ -98,6 +98,7 @@ final class MediaItemViewController: UITableViewController { var rows = [ImmuTableRow]() rows.append(TextRow(title: NSLocalizedString("File name", comment: "Label for the file name for a media asset (image / video)"), value: media.filename ?? "")) rows.append(TextRow(title: NSLocalizedString("File type", comment: "Label for the file type (.JPG, .PNG, etc) for a media asset (image / video)"), value: presenter.fileType ?? "")) + rows.append(TextRow(title: NSLocalizedString("File size", comment: "Label for the file size for a media asset"), value: presenter.fileSize ?? "")) switch media.mediaType { case .image, .video: @@ -426,6 +427,25 @@ private struct MediaMetadataPresenter { return (filename as NSString).pathExtension.uppercased() } + + var fileSize: String? { + guard let fileSizeInBytes = media.filesize as? Int else { + return nil + } + + let sizeAbbreviations = ["bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"] + var sizeAbbreviationsIndex = 0 + var capacity = Double(fileSizeInBytes) + + while capacity > 1024 { + capacity /= 1024 + sizeAbbreviationsIndex += 1 + } + + let formattedCapacity = String(format: "%4.2f", capacity) + let sizeAbbreviation = sizeAbbreviations[sizeAbbreviationsIndex] + return "\(formattedCapacity) \(sizeAbbreviation)" + } } /// Used to store media metadata and provide the ability to undo changes to