Adapt Live Activity icon capacity
This commit is contained in:
1 parent
9b04003012
commit
18cae18320
3 files changed
+20
-6
No files matched your search
@@ -850,8 +850,10 @@ private actor MobileTestSFTPClient: SFTPClientProtocol {
|
||||
let state = WorkspaceActivityAttributes.ContentState.snapshot(sessions, focusedID: focused)
|
||||
#expect(state.workspaceCount == 12)
|
||||
#expect(state.connectedCount == 3)
|
||||
#expect(state.sessions.count == WorkspaceActivityAttributes.ContentState.maximumPresentedSessionCount)
|
||||
#expect(WorkspaceActivityAttributes.ContentState.maximumPresentedSessionCount == 6)
|
||||
#expect(state.sessions.count == 6)
|
||||
#expect(state.sessions.first?.id == focused)
|
||||
#expect(state.workspaceCount > state.sessions.count)
|
||||
#expect(WorkspaceActivityAttributes.workspaceID(from: state.destinationURL) == focused)
|
||||
#expect(try JSONEncoder().encode(state).count < 3500)
|
||||
}
|
||||
|
||||
@@ -52,8 +52,21 @@ struct WorkspaceLiveActivity: Widget {
|
||||
}
|
||||
|
||||
private func sessions(_ context: ActivityViewContext<WorkspaceActivityAttributes>) -> some View {
|
||||
let visibleSessions = context.state.sessions.prefix(
|
||||
WorkspaceActivityAttributes.ContentState.maximumPresentedSessionCount)
|
||||
ViewThatFits(in: .horizontal) {
|
||||
sessionRow(
|
||||
context,
|
||||
maximumVisibleCount: WorkspaceActivityAttributes.ContentState.maximumPresentedSessionCount)
|
||||
sessionRow(context, maximumVisibleCount: 5)
|
||||
sessionRow(context, maximumVisibleCount: 4)
|
||||
}
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
}
|
||||
|
||||
private func sessionRow(
|
||||
_ context: ActivityViewContext<WorkspaceActivityAttributes>,
|
||||
maximumVisibleCount: Int
|
||||
) -> some View {
|
||||
let visibleSessions = context.state.sessions.prefix(maximumVisibleCount)
|
||||
|
||||
return HStack(spacing: 8) {
|
||||
ForEach(visibleSessions) { session in
|
||||
@@ -70,9 +83,8 @@ struct WorkspaceLiveActivity: Widget {
|
||||
.frame(minWidth: 44, minHeight: 44)
|
||||
}.accessibilityLabel("All Workspaces")
|
||||
}
|
||||
Spacer(minLength: 0)
|
||||
}
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.fixedSize(horizontal: true, vertical: false)
|
||||
}
|
||||
|
||||
private func appIcon(size: CGFloat) -> some View {
|
||||
|
||||
@@ -15,7 +15,7 @@ nonisolated struct WorkspaceActivityAttributes: ActivityAttributes {
|
||||
}
|
||||
|
||||
struct ContentState: Codable, Hashable {
|
||||
static let maximumPresentedSessionCount = 4
|
||||
static let maximumPresentedSessionCount = 6
|
||||
|
||||
var workspaceCount: Int
|
||||
var connectedCount: Int
|
||||
|
||||
Reference in new issue
Block a user