Skip to content

Commit 4a76ab8

Browse files
authored
Generalize BackupAttachmentDownloadQueueStatus to cover upload queue status
1 parent 419a259 commit 4a76ab8

File tree

8 files changed

+215
-95
lines changed

8 files changed

+215
-95
lines changed

Signal.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,7 +1194,7 @@
11941194
66F6D6A52C7D0E0000EFAF75 /* ColorOrGradient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F6D6A42C7D0E0000EFAF75 /* ColorOrGradient.swift */; };
11951195
66F6D6A72C7D0FF300EFAF75 /* Wallpaper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F6D6A62C7D0FF300EFAF75 /* Wallpaper.swift */; };
11961196
66F6D6A92C7D106100EFAF75 /* Wallpaper+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F6D6A82C7D106100EFAF75 /* Wallpaper+Constants.swift */; };
1197-
66F98DDE2DB7073F009F1A86 /* BackupAttachmentDownloadQueueStatusManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F98DDD2DB70739009F1A86 /* BackupAttachmentDownloadQueueStatusManager.swift */; };
1197+
66F98DDE2DB7073F009F1A86 /* BackupAttachmentQueueStatusManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F98DDD2DB70739009F1A86 /* BackupAttachmentQueueStatusManager.swift */; };
11981198
66F98DE02DB710F8009F1A86 /* DeviceBatteryLevelManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F98DDF2DB710EA009F1A86 /* DeviceBatteryLevelManager.swift */; };
11991199
66F98DE22DB71220009F1A86 /* DeviceBatteryLevelManagerImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F98DE12DB71219009F1A86 /* DeviceBatteryLevelManagerImpl.swift */; };
12001200
66F98DE62DBBED6C009F1A86 /* LineWrappingStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66F98DE52DBBED68009F1A86 /* LineWrappingStackView.swift */; };
@@ -5108,7 +5108,7 @@
51085108
66F6D6A42C7D0E0000EFAF75 /* ColorOrGradient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorOrGradient.swift; sourceTree = "<group>"; };
51095109
66F6D6A62C7D0FF300EFAF75 /* Wallpaper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Wallpaper.swift; sourceTree = "<group>"; };
51105110
66F6D6A82C7D106100EFAF75 /* Wallpaper+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Wallpaper+Constants.swift"; sourceTree = "<group>"; };
5111-
66F98DDD2DB70739009F1A86 /* BackupAttachmentDownloadQueueStatusManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackupAttachmentDownloadQueueStatusManager.swift; sourceTree = "<group>"; };
5111+
66F98DDD2DB70739009F1A86 /* BackupAttachmentQueueStatusManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackupAttachmentQueueStatusManager.swift; sourceTree = "<group>"; };
51125112
66F98DDF2DB710EA009F1A86 /* DeviceBatteryLevelManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceBatteryLevelManager.swift; sourceTree = "<group>"; };
51135113
66F98DE12DB71219009F1A86 /* DeviceBatteryLevelManagerImpl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceBatteryLevelManagerImpl.swift; sourceTree = "<group>"; };
51145114
66F98DE52DBBED68009F1A86 /* LineWrappingStackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineWrappingStackView.swift; sourceTree = "<group>"; };
@@ -9635,9 +9635,9 @@
96359635
6685FEED2DB06F740086CF3C /* BackupAttachmentDownloadEligibility.swift */,
96369636
66E257022CA3860B00100A08 /* BackupAttachmentDownloadManager.swift */,
96379637
6685FEEF2DB073F60086CF3C /* BackupAttachmentDownloadProgress.swift */,
9638-
66F98DDD2DB70739009F1A86 /* BackupAttachmentDownloadQueueStatusManager.swift */,
96399638
667BB2072C580C1400E79B57 /* BackupAttachmentDownloadStore.swift */,
96409639
66681CDE2C58174F00E50136 /* BackupAttachmentDownloadStoreTests.swift */,
9640+
66F98DDD2DB70739009F1A86 /* BackupAttachmentQueueStatusManager.swift */,
96419641
66734F002CA1ED3A00558494 /* BackupAttachmentUploadManager.swift */,
96429642
66C7952C2C9B78E200C13937 /* BackupAttachmentUploadStore.swift */,
96439643
66C7952E2C9B837500C13937 /* BackupAttachmentUploadStoreTests.swift */,
@@ -17498,8 +17498,8 @@
1749817498
6685FEEE2DB06F7C0086CF3C /* BackupAttachmentDownloadEligibility.swift in Sources */,
1749917499
66E257032CA3861200100A08 /* BackupAttachmentDownloadManager.swift in Sources */,
1750017500
6685FEF02DB073FD0086CF3C /* BackupAttachmentDownloadProgress.swift in Sources */,
17501-
66F98DDE2DB7073F009F1A86 /* BackupAttachmentDownloadQueueStatusManager.swift in Sources */,
1750217501
667BB2082C580C1400E79B57 /* BackupAttachmentDownloadStore.swift in Sources */,
17502+
66F98DDE2DB7073F009F1A86 /* BackupAttachmentQueueStatusManager.swift in Sources */,
1750317503
66734F012CA1ED3F00558494 /* BackupAttachmentUploadManager.swift in Sources */,
1750417504
66C7952D2C9B78E900C13937 /* BackupAttachmentUploadStore.swift in Sources */,
1750517505
D923DF9C2DC135D200CDAFC3 /* BackupIdManager.swift in Sources */,

Signal/src/ViewControllers/HomeView/Chat List/ChatListViewController+BackupProgressView.swift

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import SignalUI
1010
public class CLVBackupProgressView {
1111

1212
public class State {
13-
var downloadQueueStatus: BackupAttachmentDownloadQueueStatus?
13+
var downloadQueueStatus: BackupAttachmentQueueStatus?
1414
var didDismissDownloadCompleteBanner: Bool?
1515
var totalPendingBackupAttachmentDownloadByteCount: UInt64?
1616
var downloadProgress: OWSProgress?
@@ -41,21 +41,21 @@ public class CLVBackupProgressView {
4141
}
4242

4343
private let backupAttachmentDownloadManager: BackupAttachmentDownloadManager
44-
private let backupAttachmentDownloadQueueStatusManager: BackupAttachmentDownloadQueueStatusManager
44+
private let backupAttachmentQueueStatusManager: BackupAttachmentQueueStatusManager
4545
private let backupAttachmentDownloadStore: BackupAttachmentDownloadStore
4646
private let db: DB
4747

4848
init() {
4949
AssertIsOnMainThread()
5050

5151
self.backupAttachmentDownloadManager = DependenciesBridge.shared.backupAttachmentDownloadManager
52-
self.backupAttachmentDownloadQueueStatusManager = DependenciesBridge.shared.backupAttachmentDownloadQueueStatusManager
52+
self.backupAttachmentQueueStatusManager = DependenciesBridge.shared.backupAttachmentQueueStatusManager
5353
self.backupAttachmentDownloadStore = DependenciesBridge.shared.backupAttachmentDownloadStore
5454
self.db = DependenciesBridge.shared.db
5555

5656
backupAttachmentDownloadProgressView = BackupAttachmentDownloadProgressView(
5757
backupAttachmentDownloadManager: backupAttachmentDownloadManager,
58-
backupAttachmentDownloadQueueStatusManager: backupAttachmentDownloadQueueStatusManager,
58+
backupAttachmentQueueStatusManager: backupAttachmentQueueStatusManager,
5959
backupAttachmentDownloadStore: backupAttachmentDownloadStore,
6060
db: db
6161
)
@@ -70,7 +70,7 @@ public class CLVBackupProgressView {
7070
viewState: viewState,
7171
// Irrelevant for this bool determination
7272
completeDismissAction: {},
73-
backupAttachmentDownloadQueueStatusManager: backupAttachmentDownloadQueueStatusManager
73+
backupAttachmentQueueStatusManager: backupAttachmentQueueStatusManager
7474
)
7575
switch downloadState {
7676
case nil:
@@ -93,7 +93,7 @@ public class CLVBackupProgressView {
9393
}
9494
self?.update(viewState: viewState)
9595
},
96-
backupAttachmentDownloadQueueStatusManager: backupAttachmentDownloadQueueStatusManager
96+
backupAttachmentQueueStatusManager: backupAttachmentQueueStatusManager
9797
)
9898
let oldState = backupAttachmentDownloadProgressView.state
9999
backupAttachmentDownloadProgressView.state = state
@@ -112,24 +112,24 @@ public class CLVBackupProgressView {
112112
viewState: viewState,
113113
// Irrelevant in this context
114114
completeDismissAction: {},
115-
backupAttachmentDownloadQueueStatusManager: DependenciesBridge
116-
.shared.backupAttachmentDownloadQueueStatusManager
115+
backupAttachmentQueueStatusManager: DependenciesBridge
116+
.shared.backupAttachmentQueueStatusManager
117117
)
118118
)
119119
}
120120

121121
private static func downloadProgressState(
122122
viewState: CLVBackupProgressView.State,
123123
completeDismissAction: @escaping () -> Void,
124-
backupAttachmentDownloadQueueStatusManager: BackupAttachmentDownloadQueueStatusManager
124+
backupAttachmentQueueStatusManager: BackupAttachmentQueueStatusManager
125125
) -> BackupAttachmentDownloadProgressView.State? {
126126
switch viewState.downloadQueueStatus {
127127
case .none, .notRegisteredAndReady:
128128
return nil
129129
case .lowBattery:
130130
return .paused(reason: .lowBattery)
131131
case .lowDiskSpace:
132-
let minRequiredDiskSpace = backupAttachmentDownloadQueueStatusManager
132+
let minRequiredDiskSpace = backupAttachmentQueueStatusManager
133133
.minimumRequiredDiskSpaceToCompleteDownloads()
134134
let requiredDiskSpace = viewState.downloadProgress.map {
135135
$0.totalUnitCount - $0.completedUnitCount
@@ -187,18 +187,18 @@ public class BackupAttachmentDownloadProgressView: UIView {
187187
}
188188

189189
private let backupAttachmentDownloadManager: BackupAttachmentDownloadManager
190-
private let backupAttachmentDownloadQueueStatusManager: BackupAttachmentDownloadQueueStatusManager
190+
private let backupAttachmentQueueStatusManager: BackupAttachmentQueueStatusManager
191191
private let backupAttachmentDownloadStore: BackupAttachmentDownloadStore
192192
private let db: DB
193193

194194
public init(
195195
backupAttachmentDownloadManager: BackupAttachmentDownloadManager,
196-
backupAttachmentDownloadQueueStatusManager: BackupAttachmentDownloadQueueStatusManager,
196+
backupAttachmentQueueStatusManager: BackupAttachmentQueueStatusManager,
197197
backupAttachmentDownloadStore: BackupAttachmentDownloadStore,
198198
db: DB
199199
) {
200200
self.backupAttachmentDownloadManager = backupAttachmentDownloadManager
201-
self.backupAttachmentDownloadQueueStatusManager = backupAttachmentDownloadQueueStatusManager
201+
self.backupAttachmentQueueStatusManager = backupAttachmentQueueStatusManager
202202
self.backupAttachmentDownloadStore = backupAttachmentDownloadStore
203203
self.db = db
204204
super.init(frame: .zero)
@@ -688,7 +688,7 @@ public class BackupAttachmentDownloadProgressView: UIView {
688688
comment: "generic button text to acknowledge that the corresponding text was read."
689689
),
690690
action: { sheet in
691-
self.backupAttachmentDownloadQueueStatusManager.reattemptDiskSpaceChecks()
691+
self.backupAttachmentQueueStatusManager.reattemptDiskSpaceChecks()
692692
sheet.dismiss(animated: true)
693693
}
694694
),

Signal/src/ViewControllers/HomeView/Chat List/ChatListViewController+Notifications.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,12 @@ extension ChatListViewController {
7777
)
7878
NotificationCenter.default.addObserver(
7979
self,
80-
selector: #selector(backupAttachmentDownloadQueueStatusDidChange),
81-
name: BackupAttachmentDownloadQueueStatus.didChangeNotification,
80+
selector: #selector(backupAttachmentDownloadQueueStatusDidChange(_:)),
81+
name: BackupAttachmentQueueStatus.didChangeNotification,
8282
object: nil
8383
)
8484
viewState.backupProgressViewState.downloadQueueStatus =
85-
DependenciesBridge.shared.backupAttachmentDownloadQueueStatusManager.currentStatus()
85+
DependenciesBridge.shared.backupAttachmentQueueStatusManager.currentStatus(type: .download)
8686
Task { @MainActor in
8787
self.viewState.backupProgressViewState.downloadProgressObserver = await DependenciesBridge.shared
8888
.backupAttachmentDownloadManager.progress
@@ -256,9 +256,11 @@ extension ChatListViewController {
256256
}
257257

258258
@objc
259-
private func backupAttachmentDownloadQueueStatusDidChange() {
259+
private func backupAttachmentDownloadQueueStatusDidChange(_ notification: Notification) {
260+
let type = notification.userInfo?[BackupAttachmentQueueStatus.notificationQueueTypeKey]
261+
guard type as? BackupAttachmentQueueType == .download else { return }
260262
self.viewState.backupProgressViewState.downloadQueueStatus =
261-
DependenciesBridge.shared.backupAttachmentDownloadQueueStatusManager.currentStatus()
263+
DependenciesBridge.shared.backupAttachmentQueueStatusManager.currentStatus(type: .download)
262264
self.viewState.backupProgressView.update(viewState: self.viewState.backupProgressViewState)
263265
}
264266
}

SignalServiceKit/Dependencies/DependenciesBridge.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ public class DependenciesBridge {
6262
public let authorMergeHelper: AuthorMergeHelper
6363
public let avatarDefaultColorManager: AvatarDefaultColorManager
6464
public let backupAttachmentDownloadManager: BackupAttachmentDownloadManager
65-
public let backupAttachmentDownloadQueueStatusManager: BackupAttachmentDownloadQueueStatusManager
6665
public let backupAttachmentDownloadStore: BackupAttachmentDownloadStore
66+
public let backupAttachmentQueueStatusManager: BackupAttachmentQueueStatusManager
6767
public let backupAttachmentUploadManager: BackupAttachmentUploadManager
6868
public let backupIdManager: BackupIdManager
6969
public let backupSubscriptionManager: BackupSubscriptionManager
@@ -187,8 +187,8 @@ public class DependenciesBridge {
187187
authorMergeHelper: AuthorMergeHelper,
188188
avatarDefaultColorManager: AvatarDefaultColorManager,
189189
backupAttachmentDownloadManager: BackupAttachmentDownloadManager,
190-
backupAttachmentDownloadQueueStatusManager: BackupAttachmentDownloadQueueStatusManager,
191190
backupAttachmentDownloadStore: BackupAttachmentDownloadStore,
191+
backupAttachmentQueueStatusManager: BackupAttachmentQueueStatusManager,
192192
backupAttachmentUploadManager: BackupAttachmentUploadManager,
193193
backupIdManager: BackupIdManager,
194194
backupSubscriptionManager: BackupSubscriptionManager,
@@ -311,8 +311,8 @@ public class DependenciesBridge {
311311
self.authorMergeHelper = authorMergeHelper
312312
self.avatarDefaultColorManager = avatarDefaultColorManager
313313
self.backupAttachmentDownloadManager = backupAttachmentDownloadManager
314-
self.backupAttachmentDownloadQueueStatusManager = backupAttachmentDownloadQueueStatusManager
315314
self.backupAttachmentDownloadStore = backupAttachmentDownloadStore
315+
self.backupAttachmentQueueStatusManager = backupAttachmentQueueStatusManager
316316
self.backupAttachmentUploadManager = backupAttachmentUploadManager
317317
self.backupIdManager = backupIdManager
318318
self.backupSubscriptionManager = backupSubscriptionManager

SignalServiceKit/Environment/AppSetup.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -943,10 +943,12 @@ public class AppSetup {
943943
)
944944

945945
let backupAttachmentDownloadStore = BackupAttachmentDownloadStoreImpl()
946-
let backupAttachmentDownloadQueueStatusManager = BackupAttachmentDownloadQueueStatusManagerImpl(
946+
let backupAttachmentUploadStore = BackupAttachmentUploadStoreImpl()
947+
let backupAttachmentQueueStatusManager = BackupAttachmentQueueStatusManagerImpl(
947948
appContext: appContext,
948949
appReadiness: appReadiness,
949950
backupAttachmentDownloadStore: backupAttachmentDownloadStore,
951+
backupAttachmentUploadStore: backupAttachmentUploadStore,
950952
db: db,
951953
deviceBatteryLevelManager: deviceBatteryLevelManager,
952954
reachabilityManager: reachabilityManager,
@@ -968,18 +970,19 @@ public class AppSetup {
968970
messageBackupRequestManager: messageBackupRequestManager,
969971
orphanedBackupAttachmentStore: orphanedBackupAttachmentStore,
970972
remoteConfigProvider: remoteConfigManager,
971-
statusManager: backupAttachmentDownloadQueueStatusManager,
973+
statusManager: backupAttachmentQueueStatusManager,
972974
svr: svr,
973975
tsAccountManager: tsAccountManager
974976
)
975-
let backupAttachmentUploadStore = BackupAttachmentUploadStoreImpl()
976977
let backupAttachmentUploadManager = BackupAttachmentUploadManagerImpl(
978+
appReadiness: appReadiness,
977979
attachmentStore: attachmentStore,
978980
attachmentUploadManager: attachmentUploadManager,
979981
backupAttachmentUploadStore: backupAttachmentUploadStore,
980982
dateProvider: dateProvider,
981983
db: db,
982984
messageBackupRequestManager: messageBackupRequestManager,
985+
statusManager: backupAttachmentQueueStatusManager,
983986
tsAccountManager: tsAccountManager
984987
)
985988

@@ -1291,8 +1294,8 @@ public class AppSetup {
12911294
authorMergeHelper: authorMergeHelper,
12921295
avatarDefaultColorManager: avatarDefaultColorManager,
12931296
backupAttachmentDownloadManager: backupAttachmentDownloadManager,
1294-
backupAttachmentDownloadQueueStatusManager: backupAttachmentDownloadQueueStatusManager,
12951297
backupAttachmentDownloadStore: backupAttachmentDownloadStore,
1298+
backupAttachmentQueueStatusManager: backupAttachmentQueueStatusManager,
12961299
backupAttachmentUploadManager: backupAttachmentUploadManager,
12971300
backupIdManager: backupIdManager,
12981301
backupSubscriptionManager: backupSubscriptionManager,

0 commit comments

Comments
 (0)