Improve screen capture timing and logic for power mode switching
This commit is contained in:
parent
e5472a0850
commit
652fca9d87
@ -72,6 +72,13 @@ class ActiveWindowService: ObservableObject {
|
||||
func applyConfiguration(_ config: PowerModeConfig) async {
|
||||
guard let enhancementService = enhancementService else { return }
|
||||
|
||||
// Capture current state before making changes
|
||||
let wasScreenCaptureEnabled = await MainActor.run {
|
||||
enhancementService.useScreenCaptureContext
|
||||
}
|
||||
let wasEnhancementEnabled = await MainActor.run {
|
||||
enhancementService.isEnhancementEnabled
|
||||
}
|
||||
|
||||
await MainActor.run {
|
||||
enhancementService.isEnhancementEnabled = config.isAIEnhancementEnabled
|
||||
@ -126,5 +133,17 @@ class ActiveWindowService: ObservableObject {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Capture screen context at the end after a brief delay to ensure all changes are settled
|
||||
// and either enhancement is newly enabled or screen capture is newly enabled
|
||||
if config.isAIEnhancementEnabled && config.useScreenCapture {
|
||||
let shouldCaptureScreen = !wasEnhancementEnabled || !wasScreenCaptureEnabled
|
||||
|
||||
if shouldCaptureScreen {
|
||||
// Wait a moment for UI changes and content loading to complete
|
||||
try? await Task.sleep(nanoseconds: 1_500_000_000) // 1.5 seconds
|
||||
await enhancementService.captureScreenContext()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,12 +20,6 @@ class AIEnhancementService: ObservableObject {
|
||||
if isEnhancementEnabled && selectedPromptId == nil {
|
||||
selectedPromptId = customPrompts.first?.id
|
||||
}
|
||||
|
||||
if isEnhancementEnabled && useScreenCaptureContext {
|
||||
Task {
|
||||
await captureScreenContext()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@Published var useClipboardContext: Bool {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user