| | |
| | | case layout |
| | | case candidateFiltering |
| | | case activation |
| | | case spaceFilter |
| | | } |
| | | |
| | | final class LiveQuickSwitchSnapshotLoader: QuickSwitchSnapshotLoading { |
| | |
| | | } |
| | | if mode == .activation { |
| | | return activationSnapshot() |
| | | } |
| | | if mode == .spaceFilter { |
| | | return spaceFilterSnapshot() |
| | | } |
| | | |
| | | return layoutSnapshot() |
| | |
| | | currentSpaceIDs: [1] |
| | | ) |
| | | } |
| | | |
| | | private func spaceFilterSnapshot() -> QuickSwitchSnapshotLoad { |
| | | let displayAUUID = "fixture-display-a" |
| | | let displayBUUID = "fixture-display-b" |
| | | let displays = [ |
| | | AlignerDisplay( |
| | | uuid: displayAUUID, |
| | | physical: true, |
| | | spaces: [ |
| | | AlignerSpace(id: 1, type: .user, displayUUID: displayAUUID, index: 1), |
| | | AlignerSpace(id: 2, type: .user, displayUUID: displayAUUID, index: 2), |
| | | AlignerSpace(id: 3, type: .user, displayUUID: displayAUUID, index: 3) |
| | | ] |
| | | ), |
| | | AlignerDisplay( |
| | | uuid: displayBUUID, |
| | | physical: true, |
| | | spaces: [ |
| | | AlignerSpace(id: 4, type: .user, displayUUID: displayBUUID, index: 1), |
| | | AlignerSpace(id: 5, type: .fullscreen, displayUUID: displayBUUID, index: 2) |
| | | ] |
| | | ) |
| | | ] |
| | | |
| | | let alphaApp = AlignerApp( |
| | | bundleIdentifier: "com.example.spacefilter.alpha", |
| | | name: "Alpha Space App", |
| | | category: .finder, |
| | | processIdentifier: 50_001 |
| | | ) |
| | | let betaApp = AlignerApp( |
| | | bundleIdentifier: "com.example.spacefilter.beta", |
| | | name: "Beta Space App", |
| | | category: .documentNotes, |
| | | processIdentifier: 50_002 |
| | | ) |
| | | let fullscreenApp = AlignerApp( |
| | | bundleIdentifier: "com.example.spacefilter.fullscreen", |
| | | name: "Fullscreen Solo App", |
| | | category: .generic, |
| | | processIdentifier: 50_003 |
| | | ) |
| | | let noSpaceApp = AlignerApp( |
| | | bundleIdentifier: "com.example.spacefilter.nospace", |
| | | name: "No Space App", |
| | | category: .generic, |
| | | processIdentifier: 50_004 |
| | | ) |
| | | |
| | | let windows = [ |
| | | AlignerWindow( |
| | | id: 50_101, |
| | | app: alphaApp, |
| | | title: "Alpha A1 Primary", |
| | | spaceIDs: [1] |
| | | ), |
| | | AlignerWindow( |
| | | id: 50_102, |
| | | app: alphaApp, |
| | | title: "Alpha A1 Secondary", |
| | | isMinimized: true, |
| | | spaceIDs: [1] |
| | | ), |
| | | AlignerWindow( |
| | | id: 50_201, |
| | | app: betaApp, |
| | | title: "Beta A1 Shared", |
| | | spaceIDs: [1] |
| | | ), |
| | | AlignerWindow( |
| | | id: 50_202, |
| | | app: betaApp, |
| | | title: "Beta A2 Only", |
| | | spaceIDs: [2] |
| | | ), |
| | | AlignerWindow( |
| | | id: 50_501, |
| | | app: fullscreenApp, |
| | | title: "Fullscreen B2 Solo", |
| | | isFullscreen: true, |
| | | spaceIDs: [5] |
| | | ), |
| | | AlignerWindow( |
| | | id: 50_901, |
| | | app: noSpaceApp, |
| | | title: "No Space Diagnostic", |
| | | spaceIDs: [] |
| | | ) |
| | | ] |
| | | |
| | | return QuickSwitchSnapshotLoad( |
| | | snapshot: QuickSwitchSnapshotBuilder.snapshot(displays: displays, windows: windows), |
| | | currentSpaceIDs: [1, 4] |
| | | ) |
| | | } |
| | | } |