feat: Dynamic island review - #1963
Draft
adrien-coye wants to merge 6 commits into
Draft
adrien-coye wants to merge 6 commits into
adrien-coye wants to merge 6 commits into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR refactors the Dynamic Island upload integration to be concurrency-safe by moving the Dynamic Island service to an actor, making the service protocol async/Sendable, and extracting upload progress tracking into a dedicated tracker object.
Changes:
- Convert
DynamicIslandServiceableAPIs toasyncand update call sites toawaitthem. - Replace
DynamicIslandManagerwithDynamicIslandUploadProgressTrackerand adjust DI wiring. - Rework
DynamicIslandServiceexecution flow around continuations and progress updates.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| kDriveTests/kDrive/Launch/UTRootViewControllerState.swift | Updates test DI registrations to use DynamicIslandUploadProgressTracker instead of the previous manager. |
| kDriveCore/DI/CoreTargetAssembly.swift | Updates core DI registrations for the Dynamic Island tracker and provides BGTaskScheduler.shared. |
| kDriveCore/Data/Upload/UploadQueue/Operation/UploadOperation+Error.swift | Wraps Dynamic Island cancellation calls in Task { await ... } to match async service APIs. |
| kDriveCore/Data/Upload/Servicies/UploadService/Parallelism/UploadParallelismOrchestrator.swift | Wraps queue activity updates in a task to call the async Dynamic Island API. |
| kDriveCore/Data/Upload/Servicies/DynamicIslandServiceable.swift | Makes the Dynamic Island service protocol Sendable and all methods async. |
| kDriveCore/Data/Upload/Servicies/DynamicIslandService.swift | Converts the service to an actor, injects BGTaskScheduler, and updates progress/title handling logic. |
| kDriveCore/Data/Upload/DynamicIslandUploadProgressTracker.swift | Renames/extracts progress tracking into DynamicIslandUploadProgressTracker, adds async snapshot/reset helpers. |
| kDrive/AppDelegate.swift | Calls registerTask() via Task { await ... } to match the new async API. |
Comments suppressed due to low confidence (1)
kDriveCore/Data/Upload/Servicies/DynamicIslandService.swift:103
updateQueueActivity(globalQueueActive:photoQueueActive:)isasyncin the protocol, but implemented synchronously here. After making itasync, the internal call tosubmitTask()also needs to be awaited.
public func updateQueueActivity(globalQueueActive: Bool, photoQueueActive: Bool) {
uploadProgressTracker.updateQueueActivity(
globalQueueActive: globalQueueActive,
photoQueueActive: photoQueueActive
)
if globalQueueActive || photoQueueActive {
submitTask()
}
}
| taskIdentifier = "com.infomaniak.drive.background-upload-dynamic-island" | ||
| } | ||
|
|
||
| public func registerTask() { |
| hasRegisteredLaunchHandler = true | ||
| } | ||
|
|
||
| public func submitTask() { |
| @@ -88,19 +82,17 @@ public class DynamicIslandService: DynamicIslandServiceable { | |||
| Self.logger.error("Uploading error in task: \(error)") | |||
adrien-coye
force-pushed
the
feat/Dynamic-Island
branch
from
July 7, 2026 14:42
b99024a to
9f1772e
Compare
adrien-coye
force-pushed
the
feat/Dynamic-Island-review
branch
from
July 7, 2026 14:44
a175f99 to
9d6ccb9
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island
branch
from
July 13, 2026 13:11
9f1772e to
b3730a3
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island-review
branch
from
July 13, 2026 13:12
9d6ccb9 to
4280ba9
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island
branch
from
July 23, 2026 06:04
b3730a3 to
e8f9e45
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island-review
branch
from
July 23, 2026 06:11
4280ba9 to
64820ee
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island
branch
from
July 27, 2026 12:04
e8f9e45 to
956743b
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island-review
branch
2 times, most recently
from
July 27, 2026 12:37
e2ba7f7 to
81c7c17
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island
branch
from
July 30, 2026 13:21
d1752c7 to
668b218
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island-review
branch
from
July 30, 2026 13:22
81c7c17 to
680a3c8
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island
branch
from
August 17, 2026 07:34
668b218 to
66af390
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island-review
branch
from
August 17, 2026 07:34
680a3c8 to
cbe246e
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island
branch
from
August 21, 2026 11:48
66af390 to
654d1cb
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island-review
branch
from
August 21, 2026 11:48
cbe246e to
9b675e8
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island
branch
from
August 21, 2026 13:54
654d1cb to
e3462d7
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island-review
branch
from
August 21, 2026 13:54
9b675e8 to
11ee78e
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island
branch
from
August 25, 2026 07:36
e3462d7 to
cf1f5f2
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island-review
branch
from
August 25, 2026 07:36
11ee78e to
89fbe7f
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island
branch
from
August 25, 2026 14:13
cf1f5f2 to
4b8ced2
Compare
Muuushuuu
force-pushed
the
feat/Dynamic-Island-review
branch
from
August 25, 2026 14:13
89fbe7f to
55569ea
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



No description provided.