Skip to content

Commit e835eb1

Browse files
committed
[trello.com/c/7YVA2NTe] avarageProgress -> total size progress
1 parent 90d114d commit e835eb1

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

Adamant/Modules/Chat/View/Subviews/ChatMedia/Container/ChatMediaContainerView.swift

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -211,29 +211,35 @@ extension ChatMediaContainerView {
211211
statusButton.isHidden = status == .success
212212
}
213213

214-
func averageUploadProgress() -> Double {
214+
func totalUploadProgress() -> Double {
215215
let files = model.content.fileModel.files
216-
217-
let progresses = files
218-
.compactMap { $0.progress }
219-
220-
guard !progresses.isEmpty else {
216+
217+
let totalBytes: Int64 = files.reduce(0) { result, file in
218+
result + file.file.size
219+
}
220+
221+
let uploadedBytes: Int64 = files.reduce(0) { result, file in
222+
let progress = Double(file.progress ?? 0) / 100.0
223+
return result + Int64(Double(file.file.size) * progress)
224+
}
225+
226+
guard totalBytes > 0 else {
221227
return 0.0
222228
}
223-
224-
let totalProgress = progresses.reduce(0, +)
225-
return Double(totalProgress) / Double(progresses.count)
229+
230+
return Double(uploadedBytes) / Double(totalBytes) * 100.0
226231
}
227232

228233
func updateProgressRing() {
229-
let averageProgress = averageUploadProgress()
234+
let averageProgress = totalUploadProgress()
230235

231236
if averageProgress == 0 {
232237
statusProgressState.backgroundGradient = LinearGradient(
233238
gradient: Gradient(colors: [.white, Color(.adamant.sendingFileAnimationGrayColor)]),
234239
startPoint: .topLeading,
235240
endPoint: .bottomTrailing
236-
)} else {
241+
)
242+
} else {
237243
statusProgressState.backgroundGradient = nil
238244
}
239245
statusProgressState.progress = averageProgress / 100

0 commit comments

Comments
 (0)