From 5ead6aa90345c40c43a814993ff7309185da635f Mon Sep 17 00:00:00 2001 From: Beingpax Date: Tue, 5 Aug 2025 22:32:41 +0545 Subject: [PATCH] fix: Prevent overwriting session state --- VoiceInk/PowerMode/PowerModeSessionManager.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/VoiceInk/PowerMode/PowerModeSessionManager.swift b/VoiceInk/PowerMode/PowerModeSessionManager.swift index 728bf4b..90aedc5 100644 --- a/VoiceInk/PowerMode/PowerModeSessionManager.swift +++ b/VoiceInk/PowerMode/PowerModeSessionManager.swift @@ -21,6 +21,7 @@ struct PowerModeSession: Codable { class PowerModeSessionManager { static let shared = PowerModeSessionManager() private let sessionKey = "powerModeActiveSession.v1" + private var isApplyingPowerModeConfig = false private var whisperState: WhisperState? private var enhancementService: AIEnhancementService? @@ -59,20 +60,26 @@ class PowerModeSessionManager { NotificationCenter.default.addObserver(self, selector: #selector(updateSessionSnapshot), name: .AppSettingsDidChange, object: nil) + isApplyingPowerModeConfig = true await applyConfiguration(config) + isApplyingPowerModeConfig = false } func endSession() async { guard let session = loadSession() else { return } + isApplyingPowerModeConfig = true await restoreState(session.originalState) + isApplyingPowerModeConfig = false NotificationCenter.default.removeObserver(self, name: .AppSettingsDidChange, object: nil) clearSession() } - @objc private func updateSessionSnapshot() { + @objc func updateSessionSnapshot() { + guard !isApplyingPowerModeConfig else { return } + guard var session = loadSession(), let whisperState = whisperState, let enhancementService = enhancementService else { return } let updatedState = ApplicationState(